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