2010-08-19 15 views
25

¿Hay alguna manera de cambiar el directorio donde el intérprete de Python crea el archivo .pyc? Vi dos PEP sobre ese tema (0304 y 3147), pero ninguno parece estar implementado en el intérprete predeterminado (estoy trabajando con Python 3).Cambiar el directorio donde se crean los archivos .pyc

¿Echo de menos algo?

+0

¿Puede decirnos algo más sobre por qué desea trasladarlas? –

+5

Fue solo por curiosidad, para mantener limpios los directorios. – Scharron

+0

Me preguntaba lo mismo. Tengo un caso en el que los directorios con los archivos de origen no son modificables y quiero reubicar la pycache para que todos los usuarios puedan beneficiarse de la caché sin tener acceso de escritura a los directorios de archivos de origen de python reales. – mattgately

Respuesta

19

No hay forma de cambiar dónde van los archivos .pyc. Python 3.2 implementa el esquema __pycache__ mediante el cual todos los archivos .pyc van a un directorio llamado __pycache__. Python 3.2 alpha 1 está disponible ahora si realmente necesita mantener sus directorios limpios.

Hasta que se publique 3.2, configure tantas herramientas como sea posible para ignorar los archivos .pyc.

+1

¡La versión 3.2 está disponible! Hurra ! – Scharron

+0

Tus archivos .py personalizados se compilan y almacenan en el archivo .pyc en la carpeta '__pycache__' en el mismo directorio. Encontrará archivos compilados comunes en 'C: \ Python34 \ Lib \ __ pycache__'. –

-2

No, no se perdió nada.

Los archivos .pyc siempre se crean en la ubicación del archivo `.py.

Sin embargo, existen algunos parches muy antiguos para deshabilitar completamente los archivos .pyc. Pero ... ¿por qué lo necesitas?

+27

¿Por qué lo necesita? Debido a que duplican el tamaño de cualquier lista de directorios que tenga con la basura, no necesita verla. Mantengo mi .o lejos de mi .cpp, ¿por qué no debería mantener mi .pyc lejos de mi .py? –

16

Esto podría ser útil para algunos: Miscellaneous options

-B Si se les da, Python no intentará escribir .pyc o archivos .pyo a la importación de módulos de origen. Ver también PYTHONDONTWRITEBYTECODE.

New in version 2.6. 
0

archivos de Python no siempre se almacenan en el mismo directorio y conseguirán dirigido a pycache si utiliza pycache. Cualquier respuesta sobre poder tener ubicaciones y nombres personalizados, porque importar el módulo es bastante temperamental y no siempre funciona. Podrás ver lo que quiero decir en github.com/LolexInc/Lolex-Tools/tree/Beta y ver JTToolsInstaller.py. Hay mucho lío en eso.

Cuestiones relacionadas