我正在尝试为我的python项目生成requirements/dev.txt
和prod.txt
文件。我正在使用pip-compile-multi
从base.in
dev.in
和prod.in
文件生成它们。一切正常,直到我将tensorflow-gpu==2.0.0a0
添加到prod.in
文件中。我在执行此操作时收到此错误:RuntimeError: Failed to pip-compile requirements/prod.in
。
我相信这是因为tensorflow-gpu仅在Linux上可用,而我的开发机是Mac。 (如果运行pip install tensorflow-gpu==2.0.0a0
,则会被告知平台不存在任何发行版。)是否可以为平台上不可用的软件包生成pip的requirements.txt文件?明确地说,我的目标是使用requirements.txt
之类的东西(因为这会产生版本依赖性)生成一个pip-compile-multi
文件,该文件只会安装在Linux上,但我希望能够生成在任何平台上的文件。
答案 0 :(得分:1)
使用PEP 496中的环境标记:
tensorflow-gpu==2.0.0a0; sys_platform!='darwin'
答案 1 :(得分:1)
您可以在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-compile-multi
,所以我不确定您如何称呼它。也许您需要向该命令添加一些参数。根据设置的复杂程度,您可以考虑编写Dockerfile
并稍微简化单行代码。
答案 2 :(得分:0)
当前pip-tools不支持此功能,其中有an open issue on github。 pip-compile-multi的作者建议的workaround是在Linux计算机上生成linux.txt
,然后将其静态链接到未生成的linux-prod.txt
,
-r prod.txt
-r linux.txt
答案 3 :(得分:-1)
我认为您正在寻找tensorflow-gpu==2.0.0a0
(在-
之前删除a
)。我认为这是您要查找的版本:https://pypi.org/project/tensorflow-gpu/2.0.0a0/
请参阅页面上的pip install命令。希望这可以帮助。