将Tensorflow(cpu)安装到带有Python 3.7.0的Windows 7机器上的虚拟环境中时,出现错误。
我的命令:
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
来获取它?还是意味着正在使用的回购协议没有这样的协议?
我将pip
看成Python的npm
。它足够准确吗?
在做其他事情之前,我确实更新了pip
本身。
以下问题帮助我解决了眼前的问题:错误:tensorboard 2.0.2具有要求setuptools> = 41.0.0,但您将拥有不兼容的setuptools 40.6.2。
我做了以下事情:
pip3 install setuptools --upgrade
pip3 uninstall tensorflow
pip3 install tensorflow==2.0.0
但是,我仍然对这里的幕后情况感兴趣。
问题来源:stackoverflow
这里的问题不是不是需要更新版本的软件包,而是需要不兼容的版本。
pip所使用的版本规范格式在PEP 440中进行了描述。该格式与语义版本控制完全兼容,语义版本控制主要由Major.Minor.Path
形式的版本号组成。使用此版本控制方案,允许具有不同Major
版本的软件包具有向后不兼容的API更改,因此,如果没有破坏代码的风险,则不能在主要版本之间自由升级软件包。
一个具体的例子是Python 2.XX和Python 3.XX之间的区别。随着主要版本号的更改,Python收到了许多向后不兼容的更改,例如用内置函数替换了print
语句。这导致许多有效的Python 2程序在Python 3中变得无效,因此开发人员只有在确保其程序与新API兼容后才能将其程序迁移到较新的主要Python版本。
在您的示例中,您安装了setuptools版本39.0.1
。然后,您尝试安装依赖于setuptools 40.3.0或更高版本的软件包。正如您将注意到的,这两个软件包的主要版本号有所不同(39!= 40
),因此pip不能确信升级软件包不会破坏您现有的Python环境。
如果您安装了setuptools40.2.0
,那么pip会很乐意将setuptools安装升级到40.3.0
。这是因为对Minor版本的更改预期是向后兼容的,因此,与setuptools 40.2.0运行的任何代码都应与40.3.0一样工作。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。