なぜPython .pyc
ファイルには、相対パスなどの代わりにソースコードの絶対パスが含まれていますか?なぜpython .pycファイルにソースコードの絶対パスが含まれていますか?
典型的__init__.pyc
:
\ufffd\ufffd\[email protected](i\ufffd\ufffd\ufffd\ufffd(t*N(tdbapi2(((s&/usr/lib/python2.7/sqlite3/__init__.py<module>s
なぜPython .pyc
ファイルには、相対パスなどの代わりにソースコードの絶対パスが含まれていますか?なぜpython .pycファイルにソースコードの絶対パスが含まれていますか?
典型的__init__.pyc
:
\ufffd\ufffd\[email protected](i\ufffd\ufffd\ufffd\ufffd(t*N(tdbapi2(((s&/usr/lib/python2.7/sqlite3/__init__.py<module>s
トレースバックの情報を得ました。例を見てくださいhttp://docs.python.org/library/compileall#cmdoption-compileall-d
Éricのリンクは、通常の絶対パスではなく.pycファイルに相対パスを取得するために使用できる "-d"オプションにつながることに注意してください。 –
これらのファイルが別のマシンに移動され、パスがもう一致しない場合はどうなりますか? –
一部のトレースバックで報告された情報が間違っています。 –
LinuxでPython 2.7でテストしたところ、.pycファイルには絶対パスが含まれていません。 – interjay
それは私のためです。 – joeforker
その後、pycを作成するためにたどった正確な手順を提供し、誰でも再現できる方法で絶対パスが含まれていることを確認します。私がしたことは、空の 'a.py'ファイルを作成し、それをインタラクティブなプロンプトからインポートし、' strings a.pyc'を実行することでした。 – interjay