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

我意识到我可能不应该在系统范围内进行此操作,因为许多其他软件都期望CPython 2.x的默认行为。因此,我正在寻找一种针对每个项目或虚拟环境,或者如果没有其他解决方案,针对每个自定义编译和自定义安装(例如在~/bin中)CPython解释器执行此操作的方法。



一些研究:Debian邮件列表上的Relevant discussioncode review,用于CPython 3.2中的PEP 3147实现。

最佳答案

尽管PEP 3147的backports部分暗示了其可能被反向移植的可能性:


  对于低于3.2(可能是2.7)的Python版本,可以向后移植此PEP。但是,在Python 3.2(可能还有2.7)中,默认情况下将启用此行为,实际上,它将替代旧的行为。


据我所知,这还没有完成。讨论here指出了原因:


  我希望它不在2.7中。该补丁可能很容易
  port,但它代表了一个古老的Python行为的重大变化。


那是来自Python 2.7的发布管理器的答复,他(正确的恕我直言)不希望该功能重新移植。

最后,您唯一的选择就是自己实现它(这是一项艰巨的任务)。

关于python - 如何让CPython 2.7使用__pycache__目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43756517/

10-12 21:57