使用自己的python pip依赖项和

2024-05-19 20:54:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个python应用程序(每个都在单独的GitHub repos中),它们都需要访问其中一个应用程序中的一些函数和类。你知道吗

我已经将共享代码提取到一个单独的repo中,并将其作为一个包推送到Gemfury中。你知道吗

我现在被困在使这个包的开发变得简单所需的步骤上-这个包作为依赖项通过一个Pipfile安装,所有东西都按预期加载到我的development docker容器中。你知道吗

但是,如果我想对这个软件包进行修改,那么推一个新版本、安装新版本只是为了看看它如何与我的主应用程序代码配合,这是一个冗长的过程。你知道吗

我现在有一个单独的签出共享repo的方法,它作为一个卷加载到docker容器中,但是在使用“python”时设置.py开发'开发版本不是用户先前安装的版本(作为安装的一部分)Pipfile.lock文件创建容器时)。你知道吗

其他人有没有遇到过这样的挑战,知道如何解决这个问题?你知道吗


Tags: 函数docker代码版本github应用程序步骤repo
1条回答
网友
1楼 · 发布于 2024-05-19 20:54:08

使用常规pip install可以:

src> git checkout ...app1.git
src> git checkout ...app2.git
src> pip install app1
src> pip install app2

这将使用从setup.py(在全局范围内)中的install_requires获取的版本进行安装。如果您的订单不正确,它将从pypi获取应用程序,而不是使用您的本地版本。你知道吗

我不知道pipenv,但是使用virtualenv,您可以将代码和环境分开:

src> virtualenv dev
src> . dev\bin\activate
(dev) src> pip install -r app1\requirements.txt
(dev) src> pip install -r app2\requirements.txt
(dev) src> pip install -e app1
(dev) src> pip install -e app2

如果app2要求.txt包括-e ../app1。(运行ci管道时删除-e ../可以使用sed 's,-e ../,,g' requirements.txt > requirements-ci.txt完成,然后它将选择发布到Gemfury的最新版本)。你知道吗

您的virtualenv与任何全球安装的软件包都是隔离的。你知道吗

相关问题 更多 >