在另一个python项目中使用python库的自定义分支的最佳方式是什么?
我正在开发一个python应用程序。这个应用程序依赖于一个开源库,我对它进行了大量修改 如果这很重要的话,它可以提供(非常多的WIP)分叉库,这会有所帮助 要在我的应用程序中导入分叉库,我当前的操作如下:在另一个python项目中使用python库的自定义分支的最佳方式是什么?,python,python-3.x,virtualenv,python-module,Python,Python 3.x,Virtualenv,Python Module,我正在开发一个python应用程序。这个应用程序依赖于一个开源库,我对它进行了大量修改 如果这很重要的话,它可以提供(非常多的WIP)分叉库,这会有所帮助 要在我的应用程序中导入分叉库,我当前的操作如下: sys.path.append(os.path.abspath(os.path.join(uuu文件uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 进口couchdb 这是可行的,但我并不完
sys.path.append(os.path.abspath(os.path.join(uuu文件uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
进口couchdb
这是可行的,但我并不完全满意,原因很明显。它既不优雅,也不灵活,而且似乎会混淆我的IDE。我觉得,特别是在像Python这样优雅的语言中,应该有更好的方法同时开发应用程序和它所依赖的库
库和应用程序当前都并排位于我的计算机上的一个文件夹中,共享一个虚拟环境,但驻留在两个独立的git存储库中。它们保留在不同的git存储库中对我来说很重要,因此在应用程序中嵌套库是不可能的,但其余的我很乐意改变
我肯定以前有人遇到过这种情况,所以我希望有人知道一种更受Python“官方认可”的方法。您的代码基于
couchdb
这一事实并不重要,因为它可能不再与couchdb
兼容。只需在它自己的唯一名称下正确安装它,然后像导入任何其他模块一样导入它
import couchdbdmj
不要让脚本依赖于您的开发环境:配置您的开发环境以统一方式提供您的自定义模块。
python-m pip install-e
。这将在项目中但在开发环境中安装库。(-e表示可编辑):我实际上不知道pip可以从PyPi以外的位置安装,谢谢。我将不得不再看一些文档。在这种情况下,请看这里:。它解释了如何从github进行pip安装。另外,如果要从特定分支安装,只需将@
附加到
,使其成为@
。没有,@
它是从Master安装的谢谢,在这和mattyx17的评论之间,我想我知道我现在需要做什么了。我假设我想将库的开发副本移出库的venv,对吗?更正:我的意思是将库移出应用程序的venv。应用程序的venv不正是它的正确位置吗?(或者你的意思是将库的存储库移出,然后将库本身安装到venv中?)是的,将repo移出并将库安装到venv中是我所理解的。对吗?所以,我必须用应用程序的venv将库移出文件夹。使用上面注释中提到的-e标志,将库安装在venv/src中。我必须保留一个单独的开发副本,因为无论出于什么原因,venv/src中的git repo都不允许我推到origin,但它确实允许我拉。所以我的问题现在解决了。只需从库的开发副本中推送,然后返回到venv/src中的副本。非常感谢。