更改创建 .pyc 文件的目录
Posted
技术标签:
【中文标题】更改创建 .pyc 文件的目录【英文标题】:Changing the directory where .pyc files are created 【发布时间】:2011-04-01 03:03:31 【问题描述】:有没有办法改变 Python 解释器创建 .pyc
文件的目录?我看到了两个关于该主题的 PEP(0304 和 3147),但似乎没有一个在默认解释器中实现(我正在使用 Python 3)。
我错过了什么吗?
【问题讨论】:
你能告诉我们更多关于你为什么要移动它们的信息吗? 只是出于好奇,保持目录干净。 我也在想同样的事情。我有一个案例,其中包含源文件的目录不可写,并且想要重新定位 pycache,以便所有用户都可以从缓存中受益,而无需对实际的 python 源文件目录进行写访问。 【参考方案1】:是的,从 Python 3.8 开始,您可以控制此行为。最初的讨论始于2003年的pep 304。
虽然最初的 PEP 已被撤回,但此功能的一个变体已被 最终在 https://bugs.python.org/issue33499 中为 Python 3.8 实现了
在结果中,您可以使用PYTHONPYCACHEPREFIX=path
、-X pycache_prefix=path
和sys.pycache_prefix
进行控制。
【讨论】:
对于不关心 pycache 会发生什么的 Linux 用户,将其添加到 .bashrc 时会很好地工作:export PYTHONPYCACHEPREFIX=/tmp
。缓存文件将发送至/tmp
,并在 10 天后或系统重启时被清除。【参考方案2】:
这可能对某些人有用:
Miscellaneous options,尤其是-B
选项:
如果给定,Python 不会尝试在导入源时写入 .pyc 文件 模块。另见
PYTHONDONTWRITEBYTECODE
。
【讨论】:
【参考方案3】:无法更改 .pyc 文件的位置。 Python 3.2 实现了__pycache__
方案,所有的.pyc 文件都进入一个名为__pycache__
的目录。如果您确实需要保持目录清洁,现在可以使用 Python 3.2 alpha 1。
在 3.2 发布之前,尽可能多地配置工具以忽略 .pyc 文件。
【讨论】:
您的自定义 .py 文件被编译并存储在同一目录下__pycache__
文件夹下的 .pyc 文件中。你会在C:\Python34\Lib\__pycache__
下找到常用的编译文件。
这个答案已经过时了,检查***.com/a/60024195/880783【参考方案4】:
Python 文件并不总是存储在同一目录中,如果您使用 pycache,它们将被定向到 pycache。关于能够拥有自定义位置和名称的任何答案,因为导入模块是相当喜怒无常的,并不总是有效。您将能够在 github.com/LolexInc/Lolex-Tools/tree/Beta 上看到我的意思并查看 JTToolsInstaller.py。里面有很多乱七八糟的东西。
【讨论】:
以上是关于更改创建 .pyc 文件的目录的主要内容,如果未能解决你的问题,请参考以下文章
sh 这将删除所有.pyc和.pyo文件以及__pycache__目录。它也非常快。请参阅http://stackoverflow.com/questions/785519/how-do