更改创建 .pyc 文件的目录

53
有没有办法更改Python解释器创建 .pyc 文件的目录?我看到了两个PEP关于这个主题的内容 (03043147),但默认解释器似乎没有实现它们(我正在使用Python 3)。
我有遗漏什么吗?

你能告诉我们更多关于为什么你想要移动它们的原因吗? - Ned Batchelder
6
只是出于好奇心,为了保持目录的整洁。 - Scharron
2
我也在想同样的问题。我的情况是源文件所在的目录不可写,因此希望重新定位pycache,以便所有用户都可以从缓存中受益,而无需对实际的Python源文件目录具有写访问权限。 - mattgately
1
你是否考虑更改此处的被接受答案? - Antti Haapala -- Слава Україні
4个回答

47

9
对于不关心 pycache 的 Linux 用户,将以下内容添加到 .bashrc 文件中将非常有效:export PYTHONPYCACHEPREFIX=/tmp。缓存文件将被发送到 /tmp 目录,并且将在 10 天后或系统重启时清除。 - AmaanK
/tmp 对于 macOS 也适用!更好的是,export PYTHONPYCACHEPREFIX=/tmp/pycache 将把所有文件放在 pycache 下,如果需要的话会创建它。优点是可以轻松删除缓存 - 我曾经遇到过删除/重命名 .py 文件时出现问题,但旧名称下的遗忘导入找到了某个地方的 .pyc。 - JL Peyret

25
这可能对一些人有用: 杂项选项,特别是-B选项:

如果使用该选项,则 Python 在导入源模块时不会尝试写入 .pyc 文件。另请参见 PYTHONDONTWRITEBYTECODE


19

无法更改 .pyc 文件存储位置。Python 3.2 实现了 __pycache__ 方案,所有的 .pyc 文件都会存放在名为 __pycache__ 的目录下。如果你真的需要保持目录的清洁,现在可以获取 Python 3.2 alpha 1 版本。

在 3.2 版本发布之前,请尽可能地配置工具以忽略 .pyc 文件。


您的自定义 .py 文件将被编译并存储在同一目录下的 __pycache__ 文件夹中的 .pyc 文件中。您可以在 C:\Python34\Lib\__pycache__ 下找到常见的编译文件。 - Aniket Thakur
5
这个回答已经过时,请查看 https://dev59.com/BHA75IYBdhLWcg3wAUF9#60024195。 - bers

0

Python文件并不总是存储在同一个目录中,如果使用pycache,则会被重定向到pycache。有关能够具有自定义位置和名称的答案,因为导入模块相当暴躁,并且并不总是有效。您将能够在github.com/LolexInc/Lolex-Tools/tree/Beta上查看JTToolsInstaller.py并了解我的意思。里面有很多混乱。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接