2017-02-14 16 views
0

파이썬 ... 왜 이런 일이 발생합니까? 내가 아직 설정 파일에 아래 추가 여기파이썬 2.7 - 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) 

입니다 실행할 때

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')) 

:

갑자기

나는이 오류 오류가 계속 발생합니다. six == 1.6.0

If 나는 달린다 :

pip install six==1.6.0 
python setup.py develop 

그 다음 그것은 작동한다!

나는 의미합니다. 왜 자문으로 문제를 설정하고 다룰 수 있습니까?

답변

4

설치 파일을 사용하려면 six 모듈의 버전이 1.6.0 이상이어야하지만 1.5.2 버전이 설치되어 있어야 버전 충돌 예외가 발생합니다. six의 해당 버전을 설치하면 setup.py 파일의 모든 버전 요구 사항을 충족했기 때문에 올바르게 실행됩니다.

+0

귀하의 의견은 분명한 상식입니다. install_requires가 적절한 버전을 설치하지 않는 이유는 무엇입니까? – Tampa

+0

"install_requires"는 동사 (명사, 동사) 쌍 ("install [ation]", "requires [...]"(동사, 명사) ") - 즉, 설치가 진행하려면이 버전을 확인해야한다고 주장하고 있습니다. 올바른 버전을 자동으로 설치하는 규정은 없습니다. –