我在开发过程中一直在使用pipenv,但是在生产中我需要使用requirements.txt
我合并了使用以下命令将pipenv转储到requirements.txt文件:
$ pipenv lock -r > requirements-new.txt;
一切都很好,直到我需要psycopg2>=2.7 --no-binary psycopg2
出现在我的requirements.txt中为止。
在转储到requirements.txt时,如何调整pipenv以指定--no-binary
?
我已经尝试过(但是不起作用):
export PIP_NO_BINARY=:psycopg2: && pipenv install psycopg2==2.7
作为一种临时措施,我正在使用:
pipenv lock -r > requirements-new.txt;
PSYCOPG_VERSION=$(sed -n -e 's/^.*psycopg2-binary==//p' requirements-new.txt);
sed -i "s|psycopg2-binary==$PSYCOPG_VERSION|psycopg2==$PSYCOPG_VERSION --no-binary psycopg2|" requirements-new.txt;
但是必须有更好的方法吗?
答案 0 :(得分:0)
pipenv尊重任何PIP变量,因此通过PIP_
支持大多数pip选项。
我认为您的错误是在psycopg2
周围指定冒号。对于特殊值,必须使用冒号“:any:”和“:none:”。对于常规软件包,只需列出其名称,以逗号分隔。
发件人:https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-no-binary
-无二进制
请勿使用二进制软件包。可以多次提供,每次都增加到现有值。 接受:all:禁用所有二进制包,:none:为空 集合,或者一个或多个软件包名称之间用逗号隔开。注意 某些软件包难以编译,并且在安装时可能无法安装 在他们身上使用此选项。