python 2.7 - Requirement.parse('six> = 1.6.0'))

时间:2017-02-14 22:26:08

标签: python python-2.7 six

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。为什么要自己设置和处理问题?

1 个答案:

答案 0 :(得分:4)

安装文件要求您拥有大于1.6.0的six模块版本,但安装了1.5.2版本,因此会引发VersionConflict异常。安装相应版本的six时,它会正确运行,因为您已满足setup.py文件中的所有版本控制要求。