当 sharing/backing 起来时使用 .py 或 .pyc 文件?
Use .py or .pyc file when sharing/backing up?
This answer 告诉我当 .py 文件是 运行 时会创建 .pyc 文件,据我所知,这可以节省重新 运行 时的加载时间。这让我想知道在创建 .pyc 之后 .py 文件的意义是什么。
备份或共享我的代码时,我不想包含冗余或无关的文件。我应该关注哪种文件类型?
附带问题:我有一个脚本调用另一个脚本。在 运行ning 它们之后,被调用的脚本得到了一个 .pyc 文件,但是执行调用的主脚本没有。为什么会这样?
Python .pyc 文件是在导入模块时生成的,而不是在顶级脚本为 运行 时生成的。我不确定你所说的调用是什么意思,但是如果你从命令行 运行 你的主脚本并且它导入了另一个脚本,那么只有导入的脚本会得到一个 .pyc.
至于分发 .pyc 文件,它们对次要版本敏感。如果您捆绑自己的 python 或分发多个 python 版本敏感文件,那么也许。但最佳做法是分发 .py 文件。
在您考虑其安装模型之前,Python 的脚本和模块规则似乎有点奇怪。一种常见的安装模型是可执行文件安装在系统 PATH
的某个位置,共享库安装在库路径的某个位置。
Python 的 setup.py
做同样的事情。顶级脚本在 PATH 中,但模块和包在库路径中。例如,在我的系统上,pdb3
(顶级脚本)位于 /usr/bin/pdb3
,而 os
(导入模块)位于 /usr/lib/python3.4/os.py
。假设python编译pdb3
为pdb3.pyc
。好吧,我仍然会调用 pdb3
并且 .pyc 没有用。那么为什么要弄乱路径呢?
以 root 或管理员身份安装到 运行 很常见,因此您对这些路径具有写入权限。但是您以后不会以普通用户的身份对它们进行写访问。您可以让 setup.py
在安装期间生成 .pyc 文件。无论您碰巧拥有什么 python,您都可以获得正确的 .pyc 文件,并且由于您在安装期间 运行 宁为 root/admin,您仍然可以访问这些目录。稍后尝试构建 .pyc 文件是一个问题,因为普通用户无权访问这些目录。
因此,最佳做法是分发 .py 文件并setup.py 在安装期间构建 .pyc。
如果您只是想 运行 您的 Python 脚本,那么您 真正 需要的只是 .pyc
这是从您的脚本生成的字节码源代码。有关 运行 生成 .pyc
文件的详细信息,请参阅 。我会警告一些细节有点曲折。
不过,我建议包括您的源代码并省略您的 .pyc
文件,因为它们是由 Python 解释器自动生成的。此外,如果您或其他人稍后想要 revise/revisit 您的源代码,您将需要 .py
文件。此外,通常最好只包含源代码。
This answer 告诉我当 .py 文件是 运行 时会创建 .pyc 文件,据我所知,这可以节省重新 运行 时的加载时间。这让我想知道在创建 .pyc 之后 .py 文件的意义是什么。
备份或共享我的代码时,我不想包含冗余或无关的文件。我应该关注哪种文件类型?
附带问题:我有一个脚本调用另一个脚本。在 运行ning 它们之后,被调用的脚本得到了一个 .pyc 文件,但是执行调用的主脚本没有。为什么会这样?
Python .pyc 文件是在导入模块时生成的,而不是在顶级脚本为 运行 时生成的。我不确定你所说的调用是什么意思,但是如果你从命令行 运行 你的主脚本并且它导入了另一个脚本,那么只有导入的脚本会得到一个 .pyc.
至于分发 .pyc 文件,它们对次要版本敏感。如果您捆绑自己的 python 或分发多个 python 版本敏感文件,那么也许。但最佳做法是分发 .py 文件。
在您考虑其安装模型之前,Python 的脚本和模块规则似乎有点奇怪。一种常见的安装模型是可执行文件安装在系统 PATH
的某个位置,共享库安装在库路径的某个位置。
Python 的 setup.py
做同样的事情。顶级脚本在 PATH 中,但模块和包在库路径中。例如,在我的系统上,pdb3
(顶级脚本)位于 /usr/bin/pdb3
,而 os
(导入模块)位于 /usr/lib/python3.4/os.py
。假设python编译pdb3
为pdb3.pyc
。好吧,我仍然会调用 pdb3
并且 .pyc 没有用。那么为什么要弄乱路径呢?
以 root 或管理员身份安装到 运行 很常见,因此您对这些路径具有写入权限。但是您以后不会以普通用户的身份对它们进行写访问。您可以让 setup.py
在安装期间生成 .pyc 文件。无论您碰巧拥有什么 python,您都可以获得正确的 .pyc 文件,并且由于您在安装期间 运行 宁为 root/admin,您仍然可以访问这些目录。稍后尝试构建 .pyc 文件是一个问题,因为普通用户无权访问这些目录。
因此,最佳做法是分发 .py 文件并setup.py 在安装期间构建 .pyc。
如果您只是想 运行 您的 Python 脚本,那么您 真正 需要的只是 .pyc
这是从您的脚本生成的字节码源代码。有关 运行 生成 .pyc
文件的详细信息,请参阅
不过,我建议包括您的源代码并省略您的 .pyc
文件,因为它们是由 Python 解释器自动生成的。此外,如果您或其他人稍后想要 revise/revisit 您的源代码,您将需要 .py
文件。此外,通常最好只包含源代码。