pipenv安装psycopg2> = 2.7 --no-binary psycopg2

时间:2019-06-28 14:27:24

标签: pip pipenv

我在开发过程中一直在使用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;

但是必须有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

pipenv尊重任何PIP变量,因此通过PIP_支持大多数pip选项。

我认为您的错误是在psycopg2周围指定冒号。对于特殊值,必须使用冒号“:any:”和“:none:”。对于常规软件包,只需列出其名称,以逗号分隔。

发件人:https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-no-binary

  

-无二进制

     

请勿使用二进制软件包。可以多次提供,每次都增加到现有值。   接受:all:禁用所有二进制包,:none:为空   集合,或者一个或多个软件包名称之间用逗号隔开。注意   某些软件包难以编译,并且在安装时可能无法安装   在他们身上使用此选项。