如何在requirements.txt系统无关中指定tensorflow依赖关系

时间:2016-11-25 15:24:34

标签: python python-3.x tensorflow

我在requirements.txt中指定了项目的依赖项。对于tensorflow,目前我必须指定Google提供的whl。不幸的是,有一个separate wheel depending on many system configurations

(Mac,Ubuntu)x(CPU,GPU)x(Python2.7,Python3.4,Python3.5)

为您提供12种不同的whl文件组合(实际上,只有10种)。在不同设备(Ubuntu,Mac)上工作时,有没有办法让我的requirements.txt文件在两个系统上都能正常工作?具体来说,我在Mac和Ubuntu上使用Python 3.5.2。

2 个答案:

答案 0 :(得分:0)

我认为如果您使用setup.py或requirements.py这样的文件会更好。在python(.py)文件中,您可以通过以下方式轻松获取操作系统信息:

import sys
sys.platform

您还可以通过以下方式触发任何终端命令来安装任何软件包:

import os
os.system("ls -a")

答案 1 :(得分:0)

正如@sygi在他的评论中所说,https://stackoverflow.com/a/35614580/1951176中描述了将要求限制到特定平台或Python版本的方法。对于我们的TensorFlow示例,它将读取

# Linux, Python 3.5
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp35-cp35m-linux_x86_64.whl; sys_platform == 'linux' and python_version == '3.5'
# Linux, Python 3.4
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0-cp34-cp34m-linux_x86_64.whl; sys_platform == 'linux' and python_version == '3.4'
# Linux, Python 2.7
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl; sys_platform == 'linux' and python_version == '2.7'
# Mac, Python 3.4 or 3.5
https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0-py3-none-any.whl; sys_platform == 'darwin' and ( python_version == '3.4' or python_version == '3.5' )
# Mac, Python 2.7
https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0-py2-none-any.whl; sys_platform == 'darwin' and python_version == '2.7'

最后,正如我刚才发现的那样,在TensorFlow的特定情况下,它只能指定

tensorflow
requirements.txt中的

(与其他要求一样)。