0

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

然后它起作用了!

我的意思是哇。为什么要自己设置和处理问题?

4

1 回答 1

4

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

于 2017-02-14T22:34:04.177 回答