繁体   English   中英

动态更新PYTHONPATH可防止.pyc更新

[英]Dynamically updating the PYTHONPATH prevents .pyc update

为了使自己在项目中拥有清晰的文件结构,我使用以下代码段将项目主文件夹动态添加到PYTHONPATH中,因此确保即使从文件位置上方也可以导入文件。

import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))

因为这样做了,所以当我启动主文件时,在我手动删除任何.pyc文件之前,不再识别对模块的更改。 因此,我认为这出于某种原因阻止了python检查pyc文件是否为最新。 我能以任何方式克服这个问题吗?

如果模块名称不再唯一,则添加已经导入的模块的路径可能会给您带来麻烦。 考虑到您确实import foo ,这将其父包bar添加到sys.path现在也可以import bar.foo Python将认为这两个模块是不同的模块,这可能会使依赖模块身份的任何内容混乱。

您应该真正考虑一下为什么首先需要进行此修改。 如果您的程序包中有可执行文件,则不应这样做

cd bardir/bar
python foo

而是将其作为包装的一部分通过

cd bardir
python -m bar.foo

您可以尝试使python不写那些* .pyc文件。

如何避免.pyc文件?

对于大型项目,从性能的角度来看,这将有一点点影响。 您可能对此并不在意,然后就无法创建pyc文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM