如何让CPython 2.7使用__pycache__目录?

时间:2017-05-03 09:43:57

标签: python python-2.7 python-3.x cpython pyc

CPython 3.x和PyPy遵循PEP 3147并将pyc文件存储在__pycache__目录中,并附加Python版本后缀。 我如何强制CPython 2.7将其pyc文件存储在__pycache__目录中(与在相应py文件旁边存储没有后缀的pyc文件的默认行为相反)同一目录)?

我意识到我可能不应该在系统范围内这样做,因为很多其他软件都需要CPython 2.x的默认行为。所以我正在寻找的是每个项目或每个虚拟环境的方法,或者,如果没有其他解决方案,每个自定义编译和自定义安装(例如在~/bin)CPython解释器。

一些研究:Relevant discussion在Debian邮件列表上; code review用于在CPython 3.2中实现PEP 3147。

1 个答案:

答案 0 :(得分:3)

虽然PEP 3147的backports部分提到了它被移植的可能性:

  

对于早于3.2的Python版本(以及可能 2.7),可以反向移植此PEP。但是,在Python 3.2(以及可能 2.7)中,默认情况下会启用此行为,事实上,它将替换旧行为。

据我所知,这还没有完成。讨论here表明原因:

  

我希望这不是2.7。补丁可能很简单   端口,但它代表了一个很老的Python行为的变化。

这是Python 2.7发布经理的回复,他(正确地说是imho)不希望这个功能重新移植。

最后,你唯一的选择是自己实施(这是一项非常重要的任务)。