当前位置:  开发笔记 > 编程语言 > 正文

在单独的文件夹中编译python文件的方法?

如何解决《在单独的文件夹中编译python文件的方法?》经验,为你挑选了2个好方法。

是否可以让Python将.pyc文件保存到单独的文件夹位置sys.path

/code
    foo.py
    foo.pyc
    bar.py
    bar.pyc

至:

/code
   foo.py
   bar.py
/code_compiled
   foo.pyc
   bar.pyc

我想这样,因为我觉得它更有条理.感谢你给与我的帮助.



1> jfs..:

有PEP 304:控制字节码文件的生成.它的状态是Withdrawn和相应的补丁被拒绝.因此,可能没有直接的方法来做到这一点.

如果您不需要源代码,那么您可能只是删除*.py文件.*.pyc文件可以原样使用或包装在鸡蛋中.


更新:[PYC存储库目录](http://www.python.org/dev/peps/pep-3147/)

2> Charles Merr..:

在2003年的黑暗和古代,PEP 304出现了挑战这个问题.它的补丁被发现缺乏.环境变量平台依赖性和版本偏斜将其撕成了碎片,并将其碎片分散在荒地上.

在经历了多年的痛苦之后,2009年的最后几天,一位新的挑战者崛起.巴里华沙召唤了PEP 3147并派它去做战斗,挥舞着一种技巧简单的武器.PEP粉碎了混乱的PYC文件,让那些试图争辩其PYC文件的Waring Unladen Swallow和CPython解释员沉默,并允许Python轻松休息,其死鬼偶尔在深夜运行.PEP 3147被独裁者认定是值得的,并且在3.2时代被授予官方角色.

从3.2开始,Python将模块的PYC文件存储在__pycache__模块目录下.每个PYC文件包含解释器的名称和版本,例如__pycache__/foo.cpython-33.pyc.您可能还有__pycache__/foo.cpython-32.pyc早期版本的Python编译.正确的魔法发生:如果与源代码不同步,则使用正确的魔法并重新编译.在运行时,查看模块的mymodule.__cached__pyc文件名并解析它imp.get_tag().有关详细信息,请参阅"新增功能"部分.

TL; DR - 只适用于Python 3.2及更高版本.可怜的黑客在此之前替代了版本.


PEP 3147仅是部分解决方案.`__pycache__`目录仍然是凌乱的源代码.使用pycs的主要烦恼是`svn switch`之后未删除的目录.
*随着新王国的兴起,旧王国的王国垂涎新土地的宝藏.类装饰器,整数除法和打印函数的许多raid都获得了胜利.只有当农民开始带回旧土壤的推土机时,才决定迁移.*
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有