2012-06-25 16 views
14

¿Por qué los archivos python .pyc contienen la ruta absoluta de su código fuente, en lugar de una ruta relativa u otra cosa?¿Por qué los archivos .pyc de python contienen la ruta absoluta de su código fuente?

Un típico __init__.pyc de Python 2.7 en Ubuntu:

\ufffd\ufffd\[email protected](i\ufffd\ufffd\ufffd\ufffd(t*N(tdbapi2(((s&/usr/lib/python2.7/sqlite3/__init__.py<module>s

+1

Acabo de probar con Python 2.7 en Linux y el archivo .pyc no contiene una ruta absoluta. – interjay

+2

Lo hace por mí. – joeforker

+2

Luego proporcione los pasos exactos que siguió para crear el pyc y ver que contiene una ruta absoluta, de forma que cualquiera pueda reproducir. Lo que hice fue crear un archivo 'a.py' vacío, importarlo desde el prompt interactivo y luego ejecutar' cadenas a.pyc'. – interjay

Respuesta

9

que dar la información en tracebacks. Ver por ejemplo http://docs.python.org/library/compileall#cmdoption-compileall-d

+2

Tenga en cuenta que el enlace de Éric conduce a la opción "-d", que se puede usar para obtener rutas relativas en archivos .pyc en lugar de la ruta absoluta habitual. –

+0

¿Qué pasaría si estos archivos se mueven a otra máquina y las rutas ya no coinciden? –

+0

La información que se informa en algunos registros de seguimiento sería incorrecta. –

Cuestiones relacionadas