【发布时间】:2020-06-09 10:06:57
【问题描述】:
我正在开发一个 python 应用程序。这个应用程序依赖于一个我已经分叉和大量修改的开源库。
如果重要,github 上提供了(非常 WIP 的)分叉库,它会有所帮助。
要在我的应用程序中导入分叉库,我目前正在做的事情如下:
sys.path.append(os.path.abspath(os.path.join(__file__, '..', '..', '..', '..', '..', 'couchdb')))
import couchdb
这可行,但出于显而易见的原因,我对此并不完全满意。它远非优雅或灵活,而且似乎也让我的 IDE 感到困惑。我觉得,尤其是在 Python 这样优雅的语言中,应该有更好的方法来同时开发应用程序和它所依赖的库。
库和应用程序当前并排位于我机器上的一个文件夹中,共享一个虚拟环境,但位于两个单独的 git 存储库中。对我来说,重要的是它们保留在不同的 git 存储库中,因此将库嵌套在应用程序中已不存在,但我很乐意更改其余部分。
我确定其他人以前也遇到过这种情况,所以我希望有人知道一种更受 Python“官方认可”的方法。
【问题讨论】:
-
python -m pip install -e <github_path>。这会将库安装在您的项目中,但在开发环境中。 (-e 表示可编辑):pip.pypa.io/en/stable/reference/pip_install -
我实际上不知道 pip 可以从 PyPi 以外的位置安装,谢谢。我将不得不再看一下该文档。
-
在这种情况下也请看这里:github.com/pypa/pip/issues/3610。它解释了如何从 github 进行 pip 安装。此外,如果您想从特定分支安装,只需将
@<branch_name>附加到<github_path>,使其变为<github_path>@<branch_name>。如果没有,它会从 master 安装@<branch_name>
标签: python python-3.x virtualenv python-module