Python requirements.txt 使用本地git依赖

标签 python pip

我在 CentOS-7 虚拟机上有一个小型 python flask 应用程序,它在 docker 中运行,还有一个 nginx 反向代理。 requirements.txt 使用 git+ssh 引入了几个外部实用程序,例如:

git+ssh://path-to-our-repo/some-utility.git

我必须对该实用程序进行更改,因此我将其克隆到本地,并且我需要该应用程序才能使用我的本地版本。 假设克隆和修改的实用程序位于本地目录中:

/var/work/some-utility

在 requirements.txt 中,我将条目更改为:

git+file:///var/work/some-utility

但是当我尝试使用

运行应用程序时
sudo docker-compose up

我收到错误信息

Invalid requirement: 'git+file:///var/work/some-utility'
it looks like a path. Does it exist ?

我怎样才能让它使用我的“some-utility”的本地副本?

我也试过:

git+file:///var/work/some-utility#egg=someutility

但这产生了同样的错误。

我看了PIP install from local git repository .

这与这个问题有关:

https://stackoverflow.com/questions/7225900/how-to-pip-install-packages-according-to-requirements-txt-from-a-local-directory?rq=1

我想大多数人会说为什么不直接将一些实用程序的开发分支 checkin 公司 git 存储库,但就我而言,我没有这样做的特权。

或者我的问题可能与docker有关,我需要将some-utility文件夹映射到docker容器中,然后使用该路径?我是 docker 菜鸟。

--- 编辑---

谢谢 larsks 的回答。我尝试将 some-utility 文件夹添加到 docker-compose.yml:

volumes:
  - ./some-utility:/usr/local/some-utility

然后将requirements.txt改成

git+file:///usr/local/some-utility

但是我们的本地 git 存储库刚刚停止维护,所以我将不得不等待它恢复来尝试这个。

=== 编辑 2 ===

进行上述更改后,在尝试构建我的端 pip 应用程序时运行 docker-compose 时出现以下错误:

Cloning file:///usr/local/some-utility to /tmp/pip-yj9xxtae-build
fatal: '/usr/local/some-utility' does not appear to be a git repository

但是/usr/local/some-utility 文件夹确实包含克隆的 some-utility 存储库,我可以去那里运行 git status。

最佳答案

如果您在容器内运行 pip install,那么当然 /var/work/some-utility 需要在容器内可用。

您可以使用主机卷装载公开容器内的目录,如下所示:

docker run -v /var/work/some-utility:/var/work/some-utility ...

关于Python requirements.txt 使用本地git依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46178239/

相关文章:

父类(super class) : how to access from subclass? 中带有关键字参数的 Python 2.7 函数

python - 当 txt 文件为空时,numpy#genfromtxt 引发 IOError

python - 带有正则表达式的 Ansible lineine 文件在不应该添加新行的情况下添加新行

python - 如何防止用户通过 pip 安装包

python - pip install mysql-connector==2.1.3 失败

python - 多级内联 Django

python - 删除换行符时遇到问题

python - pymongo ImportError 尽管已安装

python - pip:根据包名称选择索引url?

python - conda cythen pip pkg hunspell CyHunspell AttributeError : module 'hunspell' has no attribute 'HunSpell'