【问题标题】:PyDev imports from package in site-packages rather than package in development (absolute-imports)PyDev 从站点包中的包而不是开发包中导入(绝对导入)
【发布时间】:2014-02-10 07:28:51
【问题描述】:

我正在使用 Eclipse/PyDev 和 Python 2.7 开发一个模块 (mypackage)。我还有其他需要使用它的包和模块。为了确保其他包和模块始终使用 mypackage 的工作版本,我决定使用 distutils(同一台计算机)将 mypackage 部署到站点包,只有在 PyDev 中 mypackage 的开发版本已经更新时,我才会更新修改后调试。

为了让 mypackage 在部署到站点包时正常工作,我必须使用绝对导入来编写它。问题在于,现在当我尝试从 Eclipse 运行 mypackage 的开发版本中的模块进行调试时,它是从 site-packages 导入 mypackage 中的其他模块,而不是从 Eclipse 的开发版本中导入。

有没有办法解决这个问题?每次我想在站点包中更新我的包时,我都不想用绝对导入重写我的代码,然后如果我想在 Eclipse 中进行更改和调试我的代码,则将其改回来。

【问题讨论】:

  • 也许在 PYTHONPATHS 的路径列表中将相关目录移到更高的位置会有所帮助。 IIRC,您应该可以在 Preferences>PyDev>PYTHONPATH 中执行此操作

标签: python eclipse pydev


【解决方案1】:

将项目目录 /${PROJECT_DIR_NAME} 添加到项目的 PYTHONPATH 似乎已经成功了。

以前,我在项目的 PYTHONPATH 中只有 /${PROJECT_DIR_NAME}/mypackage。所以我怀疑,当使用绝对导入时,Eclipse 无法找到 /${PROJECT_DIR_NAME}/mypackage/mypackage/mymodule 然后会继续在站点包中搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2013-04-29
    • 2021-02-26
    • 2014-06-25
    相关资源
    最近更新 更多