为了让自己在自己的项目中明确filestructure我用下面的代码片段到项目主文件夹动态地添加到PYTHONPATH,因此保证我可以从上面甚至导入文件一个文件位置。动态更新PYTHONPATH防止.pyc文件更新
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))
因为我这样做,当我开始我的主文件,更改模块不再被认可,直到我手动删除任何pyc文件。因此,我认为这是由于某种原因阻止python检查pyc文件是否是最新的。我能以任何方式解决这个问题吗?
称其为包的一部分,如果有任何心不是更优雅的解决方案,我会尝试。虽然我想明白为什么会发生这种情况。 – weidler
'sys.modules'包含解释器加载的模块。如果你正在修改PYTHONPATH并且一些新的模块会覆盖已经存在的模块,那么新的变化将不会被看到 - 可能。无论如何,你不应该像这样使用魔法。只需将PYTHONPATH设置为尽可能高的文件层次结构,然后完成。另外,你应该使用virtualenv来安装你的项目和其他依赖项,并且为更复杂的东西安装setup.py入口点。你有一个项目是从一个简单的脚本发展而来,你从来没有重构过它吗? –