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

时间:2012-03-21 17:14:23

标签: python pip

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

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

我尝试过使用它:

file:folder/module

或者这个:

file:./folder/module

甚至是这样:

folder/module

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

由于

4 个答案:

答案 0 :(得分:24)

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

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

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

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

./foo/bar/mymodule

setup.py目录的顶层有mymodule时有效。请注意缺少file::协议指定以及包含前导./。此路径与requirements.txt文件无关,而是与当前工作目录相关。因此,必须导航到与requirements.txt相同的目录,然后运行命令:

pip install -r requirements.txt

答案 1 :(得分:1)

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

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

fabric==1.13.1
./some_fir/some_package.whl
packaging==16.8

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

请记住注意pip安装输出中的错误。

答案 2 :(得分:0)

另一个选择是使用称为Pipenv的环境管理器来管理此用例。 对新项目执行pipenv install后的步骤:

pipenv install -e app/deps/fastai-e是可编辑的,并且是可选的)

然后,您将在Pipfile中看到以下行:
fastai = {editable = true,path = "./app/deps/fastai"}

这里有类似的问题:

https://github.com/pypa/pipenv/issues/209#issuecomment-337409290 https://stackoverflow.com/a/53507226/7032846

答案 3 :(得分:0)

对我来说,只有select ... from main_table where (a,b,c,d) in ( select a,b,c,d from additional_table where z= ... ) and z = ... 指令有效。这甚至适用于AWS SAM,即file:。这是我的sam build,而englishapps是我在AWS Lambda中需要的我自己的自定义Python包

requirements.txt