我们使用的是requirements.txt文件来存储所需的所有外部模块。每个模块,但一个从互联网收集。另一个存储在包含requirements.txt文件的文件夹下的文件夹中。
顺便说一下,这个模块可以通过pip install轻松安装
我尝试过使用它:
file:folder/module
或者这个:
file:./folder/module
甚至是这样:
folder/module
但总是给我一个错误。 有谁知道哪种方法可以做到这一点?
由于
答案 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