使用requirements.txt中的相对路径来安装带有pip的tar.gz文件

F.D*_*.F. 21 python pip

我们使用的是requirements.txt文件来存储所需的所有外部模块.每个模块,但一个从互联网收集.另一个存储在持有requirements.txt文件的文件夹下的文件夹中.

顺便说一句,这个模块可以通过pip安装轻松安装

我试过用这个:

file:folder/module
Run Code Online (Sandbox Code Playgroud)

或这个:

file:./folder/module
Run Code Online (Sandbox Code Playgroud)

甚至这个:

folder/module
Run Code Online (Sandbox Code Playgroud)

但总是给我一个错误.有谁知道哪种方法可以做到这一点?

谢谢

fin*_*inn 27

在当前版本的pip(1.2.1)中,需求文件中相对路径的解释方式是模糊和半破坏的.pip存储库中存在一个未解决的问题,它更详细地解释了各种问题和含糊之处:

https://github.com/pypa/pip/issues/328

长话短说,当前的实现与pip文档中的描述不匹配,因此在撰写本文时,没有一致且可靠的方法来使用相对路径requirements.txt.

这样做,将以下内容放入我的requirements.txt:

./foo/bar/mymodule
Run Code Online (Sandbox Code Playgroud)

当目录setup.py的顶层有一个时,mymodule它就可以工作.注意缺少file::协议名称和包含领先./.此路径与requirements.txt文件无关,而是与当前工作目录相关.因此,必须导航到与该目录相同的目录requirements.txt,然后运行该命令:

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

  • 即使`.``似乎以这种方式工作`../`没有,甚至不相对于CWD,我也没有尝试`./../ (7认同)
  • 我不知道这是怎么回事,但在 Windows 上,只有 `-e ./foo/bar/mymodule` 有效,而不是 `.\foo\bar\mymodule` (2认同)
  • 2021 年,requirements.txt 中的 `../foo` 可与 pip 18.1 配合使用 (2认同)

fra*_*age 13

它基于当前工作目录(如果需要,使用 os.getcwd() 查找)和您在需求文件中提供的相对路径。

您的需求文件应如下所示:

fabric==1.13.1
./some_fir/some_package.whl
packaging==16.8
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于 .whl 文件而不适用于 .exe

请记住留意 pip install 输出是否有错误。


Edg*_*yan 5

对我来说,只有file:指令有效。这甚至适用于 AWS SAM,即sam build. 这是我的requirements.txt,englishapps 是我自己在 AWS Lambda 中需要的自定义 Python 包

requests
file:englishapps-0.0.1-py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)