2012-06-25 11 views
14

Perché i file python .pyc contengono il percorso assoluto del codice sorgente, anziché un percorso relativo o qualcos'altro?Perché i file python .pyc contengono il percorso assoluto del loro codice sorgente?

Un tipico __init__.pyc da Python 2.7 su Ubuntu:

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

+1

Ho appena testato con Python 2.7 su Linux e il file .pyc non contiene un percorso assoluto. – interjay

+2

Lo fa per me. – joeforker

+2

Quindi fornire i passaggi esatti che hai seguito per creare il pyc e vedere che contiene un percorso assoluto, in un modo che chiunque può riprodurre. Quello che ho fatto è stato creare un file 'a.py' vuoto, importarlo dal prompt interattivo e quindi eseguire' strings a.pyc'. – interjay

risposta

9

di fornire le informazioni in traceback. Si veda ad esempio http://docs.python.org/library/compileall#cmdoption-compileall-d

+2

Si noti che il collegamento di Éric porta all'opzione "-d", che può essere utilizzata per ottenere percorsi relativi in ​​file .pyc invece del solito percorso assoluto. –

+0

Cosa succederebbe se questi file venissero spostati su un'altra macchina e i percorsi non corrispondessero più? –

+0

Le informazioni riportate in alcuni traceback sarebbero errate. –

Problemi correlati