【问题标题】:In what order are PyDev project references, sourrce folders, and external libraries in the PYTHONPATHPyDev 项目引用、源文件夹和外部库在 PYTHONPATH 中的顺序是什么
【发布时间】:2014-03-01 11:45:44
【问题描述】:

使用带有 PyDev 插件的 Eclipse,如果您选择 myProject>Properties>PyDev-PYTHONPATH,您会看到两个选项卡:Source Folders 和 External Libraries。您还可以选择 myProject>Properties>Project References 并在 Eclipse/Pydev IDE 工作区中查看带有其他并行子项目的可检查列表的小部件。我了解这些小部件中的值会在您运行项目时配置 PYTHONPATH。

但文档似乎没有说明您指定的值的顺序。例如,在生成的 PYTHONPATH 中,项目引用值是否总是在源文件夹之后和外部库之前? (这是我希望的顺序,以便我可以 Python 安装我的一个子项目,如果我关闭了项目引用,我的主项目将找到已安装的版本,但如果我关闭了我的主项目将从我的工作区中找到相同的项目在我更改和调试子项目时打开对它的项目引用。)

引用项目的外部库是否同样(递归地)插入到引用项目的源文件夹之后的 PYTHONPATH 中?

似乎我的 PYTHONPATH 在我的子项目的源文件夹之前有站点包外部库目录,所以 Python 永远不会找到我的子项目的开发版本,只有安装在站点包中的子项目版本。

我曾多次尝试“强制恢复内部信息”并重新启动 Eclipse。我想我可能在 Eclipse 之外的某个地方犯了错误。

【问题讨论】:

标签: python eclipse pydev


【解决方案1】:

PyDev 中的 PYTHONPATH 是按以下顺序计算的:

  1. 项目的源文件夹具有最高优先级(因为这是您希望编辑的代码)。
  2. 用于启动的项目的外部源文件夹。
  3. 计算的依赖项目的 PYTHONPATH(同样,首先是源,然后是外部)。
  4. 已选择相关解释器的 PYTHONPATH。

请注意,最终的 sys.path 实际上是由 Python 本身计算的(因此,它可能会根据您的 Python 版本而有所不同——即:它可以从当前工作目录、当前模块或鸡蛋中添加内容,即使您从 PyDev 中配置的内容中删除它——尽管对于 PyDev,未添加的模块将不可用于代码完成,并且在搜索时会显示为错误,因为它们不会被索引),PyDev 仅更改 PYTHONPATH 环境变量以匹配上述顺序。

如果您有不同的结果,请将其报告为错误...(您可以在启动运行配置 > 解释器选项卡 > 查看生成的命令行中查看运行之前实际使用的内容)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多