Python ......为什么会这样?
突然间我收到了这个错误:
Traceback (most recent call last):
File "setup.py", line 36, in <module>
zip_safe=False)
File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 320, in __init__
_Distribution.__init__(self, attrs)
File "/usr/lib/python2.7/distutils/dist.py", line 287, in __init__
self.finalize_options()
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 386, in finalize_options
ep.require(installer=self.fetch_build_egg)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2324, in require
items = working_set.resolve(reqs, env, installer, extras=self.extras)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 859, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.6.0'))
当我运行python setup.py develop
这是我的setup.py文件
from setuptools import setup
setup(name='bootops',
version='0.1.1',
description='Boo',
url='http://github.com/boo/bootops',
author='dude',
author_email='dude',
license='GPLv3',
packages=['bootops'],
package_data={'bootops': ['classes/*.py','classes/syptec/*.py','classes/syptec/tools/*.py']},
entry_points = {
"console_scripts": ['bootops = bootops.bootops:main']
},
install_requires=[
'six==1.6.0',
'setuptools>=11.3',
'boto',
'zc.zk',
'paramiko>=2.0',
'apache-libcloud',
'requests>=2.9.1',
'pyyaml',
'pytz',
'gevent',
'redis>=2.10.5',
'dnspython',
'jinja2',
'netaddr',
'python-nmap',
'scapy',
'hashids'
],
zip_safe=False)
我在设置文件中添加了以下内容但仍然出现错误: 6 == 1.6.0
如果我跑:
pip install six==1.6.0
python setup.py develop
然后它有效!
我是说wowee。为什么要自己设置和处理问题?答案 0 :(得分:4)
安装文件要求您拥有大于1.6.0的six
模块版本,但安装了1.5.2版本,因此会引发VersionConflict异常。安装相应版本的six
时,它会正确运行,因为您已满足setup.py文件中的所有版本控制要求。