Problema: ¿Cómo eliminar todos los remanentes de random.py, random.pyc y random.pyo que no forman parte de la biblioteca estándar de Python?

1

Escribí un código aleatorio de importación, y desafortunadamente lo guardé como el nombre del módulo al que estaba tratando de llamar. p.ej. random.py

Creo, pero no estoy seguro, que creé el archivo random.py dos veces y, por lo tanto, eliminé el random.pyc, dos veces, que apareció en el archivo que contenía todos mis programas de python, después de ejecutar la importación aleatoria en el terminal , dos veces.

Si no creé el random.py dos veces, de alguna manera otro random.pyc (además del primero) estaba en el archivo que contenía mis programas y lo eliminé.

Todas las personas a las que pregunté me dijeron que eliminara el .pyc, y cualquier archivo con random, random.pyo como su nombre. He comprobado todos mis archivos creados por el usuario, y ninguno de ellos coincide con la descripción.

Uno de ellos me dijo que buscara y borrara la versión en caché temporal de random.pyc y random.pyo.

Mi pregunta es dónde puedo encontrar una versión temporal en caché de este MAC Yosemite y cómo borrarlo de forma segura.

    
pregunta Red 29.06.2015 - 16:04

3 respuestas

0

Respuesta final:

Hola nuevos programadores para python.

Tuve un problema al importar el módulo incorporado 'random'.

  1. Asegúrese de no asignar un nombre a su programa después del módulo.

    a. Si lo hace, debe eliminar el random.pyc creado recientemente u otro archivo
    aleatorio. el nombre del archivo se duplica en el archivo que contiene el random.py que creado. Estos son archivos GUI que se pueden colocar en la papelera. Este paso debería resolver el 100% de los problemas de duplicado de su archivo si tiene Python
    2.x

    Aprende a reconocer los archivos originales. De un error mio yo  Encontró la ruta al módulo en la biblioteca estándar de Python. Ruta MAC  justo antes de que se nombre el módulo:

    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

Use'cd..','ls',and'cd'togettopython2.7andenter'ls'andyouwillseealotoforiginalfileswith.py,.pyo,.pycendings.Thisisthelocationthattheyonlyshouldbeinotherthanasimilarpathbutinadifferentpythonversion.)i.Ifyoustillthinkyouhavenewlycreatedfilesfloatingaboutinthelibraryusecommand;find./python2.7-namerandom.*-lsThiswilllistthedateofallfilesthatstartwith'random.'andifthereanyhavedatesthatdonotmatchwiththeoriginalinstallationdateorupdatedates,thatisthefilethatiscausingtheproblem.ii.Youcanalsotypethiscommandintoterminaltofindfilesbutitdoesn'tlistthetimeofinstallation;mdfindkMDItemFSName==random.pyObviously,sinceyouknowwhattheoriginalfilepathlookslike,you'llbeabletonottargetthewrongfile!
  • Una vez que hayas eliminado los archivos nuevos, cambia el nombre de tu programa de otra manera que no sea random.py y posiblemente otra cosa que no sean palabras reservadas en python. Llamé a mine generator.py

  • Asegúrese de estar en el camino correcto en el terminal antes de iniciar 'python', y escriba 'generador de importación' (o cómo se llama el programa).

  • Para llegar a la ruta correcta, use 'ls', comandos 'cd' para llegar a la ruta que termina con el archivo que contiene el programa. (Este fue el último bloque para que la importación funcionara: pasé al menos 6 horas agonizando tuve otros archivos .pyc recién creados ocultos, incluso cuando el comando de búsquedas que había hecho anteriormente no daba resultado.

    Te encuentras bloqueado, tomas un descanso y regresas a él. Algo hizo clic en mi cabeza después de mirar varios lugares en línea, incluyendo stackflow, python.org ( enlace ), y Toda esta charla sobre caminos.

    ¡Nunca estuve en el camino correcto antes de importar !!

    1. Inicia 'python'

    2. Ingrese 'generador de importación'

    Debes obtener una salida de 10 números de 0.0 a 1.0

    Respondí cómo encontrar nuevas versiones de random.py, random.pyc y random.pyc. Respondí parcialmente cómo eliminar los nuevos, especialmente los que puedes descargar manualmente en tu bote de basura. ¡Todavía no sé cómo encontrar una versión temporal en caché de los archivos porque aparentemente ese no fue el problema! El problema fue que le puse un mal nombre a mi programa y no estaba en el camino correcto antes de iniciar Python e importar.

        
    respondido por el Red 30.06.2015 - 00:49
    0

    use mdfind para ubicar todos los archivos con ese nombre (es posible que necesite grep -w para la cadena o use mdfind con una cláusula "kMDItemFSName == whatever.py")

    Una vez que sepa dónde ha rociado esos archivos, puede editarlos en la pregunta o decidir hacer una instalación limpia / migrar los datos del usuario o eliminar toda la Python y luego parchearlos juntos desde una instalación limpia en un externo conducir.

    Ha tenido que saber qué cosas específicas has hecho, pero espero que algunas de las herramientas puedan limitarte a algunas opciones.

    Si estuviera en la fecha límite y solo necesitaba saber qué versión de python se estaba ejecutando, me gustaría brew install python después de configurar enlace

    Luego tendrías tres instalaciones, pero la que se ejecuta desde el shell se puede controlar con $ PATH y puedes estar seguro de que está actualizado con homebrew.

        
    respondido por el bmike 29.06.2015 - 17:08
    0

    Para Python 2.x, todos los archivos relacionados con el archivo random.py que creó estarán en el mismo directorio que este archivo.

    Para Python 3.4 vea esta sección sobre los archivos compilados de python de python docs

      

    Para acelerar la carga de módulos, Python almacena en caché la versión compilada de cada módulo en el directorio __pycache__ con el nombre module.version.pyc, donde la versión codifica el formato del archivo compilado; generalmente contiene el número de versión de Python. Por ejemplo, en la versión 3.3 de CPython, la versión compilada de spam.py se almacenará en caché como __pycache__/spam.cpython-33.pyc . Esta convención de nomenclatura permite que coexistan módulos compilados de diferentes versiones y diferentes versiones de Python.

        
    respondido por el Mark 30.06.2015 - 01:01

    Lea otras preguntas en las etiquetas