Python 如何为开发平台上不可用的包生成requirements.txt文件?

Python 如何为开发平台上不可用的包生成requirements.txt文件?,python,pip,Python,Pip,我正在尝试为我的python项目生成requirements/dev.txt和prod.txt文件。我正在使用pip compile multi从base.indev.in和prod.in文件生成它们。在我将tensorflow gpu==2.0.0a0添加到prod.in文件之前,一切都很正常。我在执行以下操作时遇到此错误:RuntimeError:pip编译需求/prod.in失败 我相信这是因为tensorflow gpu只在Linux上可用,而我的开发机器是Mac。(如果我运行pip i

我正在尝试为我的python项目生成
requirements/dev.txt
prod.txt
文件。我正在使用
pip compile multi
base.in
dev.in
prod.in
文件生成它们。在我将
tensorflow gpu==2.0.0a0
添加到
prod.in
文件之前,一切都很正常。我在执行以下操作时遇到此错误:
RuntimeError:pip编译需求/prod.in失败


我相信这是因为tensorflow gpu只在Linux上可用,而我的开发机器是Mac。(如果我运行
pip install tensorflow gpu==2.0.0a0
我被告知我的平台没有发行版。)有没有办法为我的平台上不可用的软件包的pip生成requirements.txt文件?明确地说,我的目标是生成一个
requirements.txt
文件,使用类似于
pip compile multi
(因为这将依赖于版本)的东西,它将只安装在Linux上,但我希望能够在任何平台上实际生成该文件。

我认为您正在寻找
tensorflow gpu==2.0.0a0
(在
a
之前删除
-
)。我想这就是您正在寻找的版本:
请参阅页面上的pip install命令。希望这有帮助。

使用以下环境标记:


目前,pip工具不支持这一点,有一个。pip compile multi的作者建议在linux机器上生成一个
linux.txt
,然后静态链接到一个未生成的
linux-prod.txt
,如下所示

-r prod.txt
-r linux.txt

您可以在Docker容器中运行
pip compile multi
。这样您就可以在Linux下运行它,也可以在Mac或其他开发机器上运行它。作为一个单行程序,它可能看起来像这样:

docker-run--rm--mount-type=bind,src=$(pwd),dst=/code-w/code-python:3.8 bash-c“pip-install-pip-compile-multi&&pip-compile-multi”


我没有使用<代码> PIP编译多个/<代码>,所以我不太确定你是怎么调用它的。也许你需要给这个命令添加一些参数。根据你的设置是多么复杂,你可以考虑写一个代码> DOCKFrase并简化一个内衬。问题是如何生成<代码>要求。我认为mac版本是'pip install tensorflow==2.0.0a0`我之所以这么说是因为macbooks没有像这里描述的那样启用CUDA:问题是如何将

tensorflow gpu==2.0.0a0
包含到
requirements.txt
中,以便
requirements.txt
在MacO上工作这让我达到了一个非突破点,但它实际上并没有在生成的requirements.txt中包含tensorflow gpu。我想做的是使用Mac上运行的
pip compile
等工具为Linux生成requirements.txt文件。除非这是一个错误的目标。。。
-r prod.txt
-r linux.txt