PyYv项目引用,源文件夹和PYTHONPATH中的外部库的顺序

时间:2014-03-01 11:45:44

标签: python eclipse pydev

将Eclipse与PyDev插件一起使用,如果选择myProject>属性> PyDev-PYTHONPATH,则会看到两个选项卡:源文件夹和外部库。您还可以选择myProject> Properties> Project References,并在Eclipse / Pydev IDE工作区中查看包含其他并行子项目的可检查列表的窗口小部件。我了解这些小部件中的值在您运行项目时配置PYTHONPATH。

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

类似地(递归地)是在参考项目的源文件夹之后插入PYTHONPATH的参考项目的外部库?

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

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

1 个答案:

答案 0 :(得分:2)

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

  1. 项目的源文件夹具有最高优先级(因为这是您期望编辑的代码)。
  2. 用于启动的项目的外部源文件夹。
  3. 依赖项目的计算PYTHONPATH(再次,第一个源然后是外部)。
  4. 选择了相关翻译的PYTHONPATH。
  5. 请注意,最终的sys.path实际上是由Python本身计算的(因此,根据您的Python版本,它可能会略有不同 - 即:它可以添加来自当前工作目录,当前模块或鸡蛋的东西,即使你从PyDev中配置的东西中删除它 - 虽然对于PyDev,没有添加的模块不能用于代码完成,并且在搜索时会出现错误,因为它们不能被索引) ,PyDev只更改PYTHONPATH环境变量以匹配上面给出的顺序。

    如果您以某种方式获得了不同的结果,请将此报告为错误...(您可以在启动运行配置&gt;解释器选项卡&gt;运行之前查看实际使用的内容;请参阅生成的命令行)。< / p>