Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个python项目中使用python库的自定义分支的最佳方式是什么?_Python_Python 3.x_Virtualenv_Python Module - Fatal编程技术网

在另一个python项目中使用python库的自定义分支的最佳方式是什么?

在另一个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 这是可行的,但我并不完

我正在开发一个python应用程序。这个应用程序依赖于一个开源库,我对它进行了大量修改

如果这很重要的话,它可以提供(非常多的WIP)分叉库,这会有所帮助

要在我的应用程序中导入分叉库,我当前的操作如下:

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中的副本。非常感谢。