我正在使用Eclipse / PyDev和Python 2.7开发模块(mypackage)。我还有其他需要使用它的软件包和模块。为了确保其他软件包和模块始终使用mypackage的有效版本,我决定使用distutils(同一台计算机)将mypackage部署到站点软件包,只有在PyDev中mypackage的开发版本为进行更改后调试。
为了使mypackage在部署到站点包时正常工作,我必须使用绝对导入来编写它。这样做的问题在于,现在当我尝试从Eclipse运行mypackage开发版本中的模块进行调试时,它是从站点软件包而不是从Eclipse中的开发版本中导入mypackage中的其他模块。
有办法解决这个问题吗?每当我要更新站点软件包中的软件包时,我都不得不用绝对导入来重写我的代码,如果我想在Eclipse中进行更改和调试代码,则必须将其改回。
最佳答案
将项目目录/ $ {PROJECT_DIR_NAME}添加到项目的PYTHONPATH似乎可以解决问题。
以前,我在项目的PYTHONPATH中只有/ $ {PROJECT_DIR_NAME} / mypackage。因此,我怀疑在使用绝对导入时,Eclipse无法找到/ $ {PROJECT_DIR_NAME} / mypackage / mypackage / mymodule,然后继续在站点程序包中进行搜索。