使用Python 3.7.0安装Tensorflow时出错-为什么不';pip3是否自行解决依赖关系?
在使用Python 3.7.0将Tensorflow(cpu)安装到Windows 7 box上的虚拟环境中时,我遇到了错误 我的命令:使用Python 3.7.0安装Tensorflow时出错-为什么不';pip3是否自行解决依赖关系?,python,python-3.x,tensorflow,installation,Python,Python 3.x,Tensorflow,Installation,在使用Python 3.7.0将Tensorflow(cpu)安装到Windows 7 box上的虚拟环境中时,我遇到了错误 我的命令: pip3 install tensorflow==2.0.0 我得到了以下错误,这些错误并没有阻止进程完成 错误:google auth 1.11.2的要求setuptools>=40.3.0,但您的setuptools 39.0.1不兼容 错误:tensorboard 2.0.2的要求setuptools>=41.0.0,但您的setuptools 39.
pip3 install tensorflow==2.0.0
我得到了以下错误,这些错误并没有阻止进程完成
错误:google auth 1.11.2的要求setuptools>=40.3.0,但您的setuptools 39.0.1不兼容
错误:tensorboard 2.0.2的要求setuptools>=41.0.0,但您的setuptools 39.0.1不兼容
如果我需要任何库的更高版本,是否应该pip
获取它?或者这是否意味着正在使用的回购协议没有这样的风险?
对于Python,我将pip
视为npm
。它足够准确吗
在做任何其他事情之前,我确实更新了pip
本身
以下问题帮助我解决了眼前的问题:
我做了以下工作:
pip3 install setuptools --upgrade
pip3 uninstall tensorflow
pip3 install tensorflow==2.0.0
然而,我仍然对这里发生的事情感兴趣。这里的问题不是需要更新版本的软件包,而是需要不兼容的版本 pip使用的版本规范格式如中所述。此格式为,基本上由
Major.Minor.Path
形式的版本号组成。使用此版本控制方案,具有不同<代码>主要代码>版本的软件包可以进行向后不兼容的API更改,因此如果没有破坏风险的代码,软件包无法在主要版本之间自由升级
一个具体的例子是Python2.X.X和Python3.X.X之间的区别。随着主要版本号的更改,Python收到了许多向后不兼容的更改,例如用内置函数替换print
语句。这导致许多有效的Python2程序在Python3中变得无效,因此开发人员只有在确保其程序与新API兼容后才能将其程序迁移到较新的主要Python版本
在您的示例中,安装了setuptools版本39.0.1
。然后,您试图安装一个依赖于setuptools40.3.0
或更新版本的软件包。正如您所注意到的,这两个包的主要版本号不同(39!=40
),因此pip不能确信升级包不会破坏您现有的Python环境
如果您安装了setuptools40.2.0
,pip会很乐意将您的setuptools安装升级到40.3.0
。这是因为对Minor
版本的更改应该是向后兼容的,因此任何使用setuptools40.2.0
运行的代码都应该与40.3.0
一起工作,使用--升级
是否会更改任何内容?@PM77-1是,传递--upgrade
告诉pip将引用的包升级到最新版本,其中包括更新包的依赖项。值得注意的是,默认情况下,pip仅在必要时升级依赖项,即仅升级不满足包的新需求的依赖项。有关更多信息,请参阅文档以了解。