为什么python.pyc文件包含其源代码的绝对路径?

为什么python.pyc文件包含其源代码的绝对路径?,python,Python,为什么python.pyc文件包含源代码的绝对路径,而不是相对路径或其他什么 Ubuntu上Python2.7中的典型\uuuuu init\uuuu.pyc: \ufffd\ufffd\ufffdOc@sddlTdS(i\ufffd\ufffd\ufffd\ufffd\ufffd(t*N(tdbapi2(((s&/usr/lib/python2.7/sqlite3/uuu init_uuu.pys以提供回溯中的信息。例如,请参见我刚刚在Linux上使用Python 2.7进行测试,.pyc文

为什么python
.pyc
文件包含源代码的绝对路径,而不是相对路径或其他什么

Ubuntu上Python2.7中的典型
\uuuuu init\uuuu.pyc



\ufffd\ufffd\ufffdOc@sddlTdS(i\ufffd\ufffd\ufffd\ufffd\ufffd(t*N(tdbapi2(((s&/usr/lib/python2.7/sqlite3/uuu init_uuu.pys

以提供回溯中的信息。例如,请参见我刚刚在Linux上使用Python 2.7进行测试,.pyc文件不包含绝对路径。然后提供创建pyc所遵循的确切步骤,并查看它是否包含绝对路径,以任何人都可以复制的方式。Wha我所做的是创建一个空的
a.py
文件,从交互式提示符导入,然后运行
strings a.pyc
@interjay。在这种情况下,不会发生这种情况,但是如果从另一个文件夹导入
import
,您可能会看到完整的路径(刚刚尝试过).@martineau不一定是真的,请看。@Ned Batchelder,试图用PyInstaller实现可复制的构建是吸引我提出这个问题的原因。我确实在.pyc中看到了从PyInstaller构建最终距离的计算机的文件路径。这是在使用Python 3.8的Windows 10上注意,埃里克的链接指向“-d”选项,该选项可用于获取到.pyc文件的相对路径,而不是通常的绝对路径。如果将这些文件移动到另一台计算机,并且路径不再匹配,会发生什么情况?某些回溯中报告的信息可能是错误的。