0

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

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

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

4

2 回答 2

2

如果模块名称不再唯一,添加已导入模块的路径可能会给您带来麻烦。考虑到您这样做import foo,它将其父包添加barsys.path- 现在也可以这样做import bar.foo。Python 会将两者视为不同的模块,这可能会弄乱任何依赖于模块标识的东西。

您应该首先考虑为什么需要进行此 hack。如果您的包中放置了可执行文件,则不应该这样做

cd bardir/bar
python foo

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

cd bardir
python -m bar.foo
于 2016-10-08T13:05:49.813 回答
1

你可以尝试让 python 不写那些 *.pyc 文件。

如何避免 .pyc 文件?

对于大型项目,从性能的角度来看,这会有点重要。您可能不关心这一点,然后您就不能创建 pyc 文件。

于 2016-10-08T12:51:50.890 回答