Python模块更改不是';不是进口的

Python模块更改不是';不是进口的,python,import,module,Python,Import,Module,我有一个python子项目引用了更高目录中的模块: / misc/ subproject/ main2.py project/ __init__.py main1.py 要运行main2 Icd到子项目/目录并运行 PYTHONPATH=../.. main2.py 在main2中,我试图使用我写入main1的新函数,但是我得到 AttributeError ('module' object has no

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

/
    misc/
        subproject/
            main2.py
    project/
        __init__.py
        main1.py
要运行main2 I
cd
子项目/
目录并运行

PYTHONPATH=../.. main2.py
在main2中,我试图使用我写入main1的新函数,但是我得到

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

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

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


感谢Martijn Pieters指点我使用
print main1.\uuuu file\uuuuu
查看main1模块从哪个实际文件导入。

什么是
print main1.\uu file\uuuuu
显示的是导入模块的文件名?你这个天才,我在导入main1项目之前就安装了main1项目,所以main2是从该文件导入的。有什么方法可以卸载或覆盖路径顺序吗?您可以直接操作
sys.path
,但这应该是最后的手段,真的。是的。。。实际上,我可能会重新安装main1项目。感谢您的帮助。您可以随时尝试更改模块的名称,使其具有唯一性和相关性。