PyCharm: 如何将一个项目作为另一个项目的依赖?

PyCharm: How to use one project as dependency of another?

在 PyCharm 我有一个项目调用另一个项目的模块。

例如,假设我们有两个项目 abc 和 xyz。在项目 abc 中,我们有一个带有函数 f1() 的模块 abc.mod_a,在项目 xyz 中,我们有一个带有函数 f2() 的模块 xyz.mod_b。

abc.mod_a.py:

import xyz.mod_b
def f1():
    xyz.mod_b.f2()

xyz.mod_b.py:

def f2():
    print("something was done")

为了实现这一点,我做了以下工作:

我已将 xyz 添加为项目 abc 的项目依赖项: 设置->项目->项目依赖

我已将 xyz 的主目录路径添加到用于项目 abc 的解释器的 PYTHONPATH: Settings->Project->Project Interpreter->Show All->Interpreter Paths->Add Path

当我 运行 使用 abc.mod_a.py 的代码时,我在初始 import xyz 语句中收到模块未找到错误。我做错了什么?

最简单的方法是处理 abc 项目并打开 xyz 项目。您会看到下面的对话框。

这将打开您的 abc 项目中的 xyz。它将为您处理所有依赖项。

另一种选择是在开发模式下安装 xyz python 库。 https://pip.pypa.io/en/latest/reference/pip_install/#editable-installs

pip install -e ../path_to/xyz

这会在您的 python 站点包目录中创建一个 link,它指向您的 xyz 目录。当您调用 import xyz.mod_b 时,它将在正确的目录中查找。