0

我有一个 python 子项目引用更高目录中的模块:

/
    misc/
        subproject/
            main2.py
    project/
        __init__.py
        main1.py

要运行 main2 我cdsubproject/目录并运行

PYTHONPATH=../.. main2.py

在 main2 中,我正在尝试使用已写入 main1 的新函数,但我得到了一个

AttributeError ('module' object has no attribute 'function name').

导入后运行dir(main1)显示我添加的任何功能都不存在于模块中;我注释掉了整个文件并尝试导入它,但dir(main1)显示了所有旧的顶级声明,没有一个被删除。这让我觉得这是一个缓存问题,即使我已经清除了*.pyc我能找到的所有文件。

4

1 回答 1

0

我已经安装了 main1 项目,所以即使我已经将 PYTHONPATH 设置为包含 main1 项目的当前版本,安装的版本是要导入的,因此会影响我对代码所做的更新。

感谢 Martijn Pieters 指点我用来print main1.__file__查看 main1 模块是从哪个实际文件导入的。

于 2013-08-07T15:30:56.117 回答