2013-09-17 3 views
0

Я пытаюсь написать setup.py файл для моего питона проекта:easy_install не может установить пакет

import os 
from setuptools import setup, find_packages 
here = os.path.abspath(os.path.dirname(__file__)) 

requires = [ 
     'requests', 
     'simplejson', 
     'logging', 
     'rfc3987', 
    ] 

setup(name='xxxxxxx', 
     version='0.1', 
     description='xxxxxxx API', 
     url='https://github.com/xxxxxxxx', 
     packages=find_packages(), 
     include_package_data=True, 
     zip_safe=False, 
     install_requires=requires, 
    ) 

Когда я выполнить его, я получаю эту ошибку:

Searching for rfc3987 
Reading http://pypi.python.org/simple/rfc3987/ 
Best match: rfc3987 1.3.1 
Downloading https://pypi.python.org/packages/source/r/rfc3987/rfc3987-1.3.1.tar.gz#md5=397b1c1cd8b934269e53a621d56d9ed2 
Processing rfc3987-1.3.1.tar.gz 
Running rfc3987-1.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-AYV_bv/rfc3987-1.3.1/egg-dist-tmp-G8Kbay 
Traceback (most recent call last): 
    File "/usr/bin/easy_install", line 9, in <module> 
    load_entry_point('distribute==0.6.10', 'console_scripts', 'easy_install')() 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1715, in main 
    with_ei_usage(lambda: 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1696, in with_ei_usage 
    return f() 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1719, in <lambda> 
    distclass=DistributionWithoutHelpCommands, **kw 
    File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup 
    dist.run_commands() 
    File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands 
    self.run_command(cmd) 
    File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command 
    cmd_obj.run() 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 236, in run 
    self.easy_install(spec, not self.no_deps) 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 472, in easy_install 
    return self.install_item(spec, dist.location, tmpdir, deps) 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 502, in install_item 
    dists = self.install_eggs(spec, download, tmpdir) 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 681, in install_eggs 
    return self.build_and_install(setup_script, setup_base) 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 958, in build_and_install 
    self.run_setup(setup_script, setup_base, args) 
    File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 947, in run_setup 
    run_setup(setup_script, args) 
    File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 29, in run_setup 
    lambda: execfile(
    File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 70, in run 
    return func() 
    File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 31, in <lambda> 
    {'__file__':setup_script, '__name__':'__main__'} 
    File "setup.py", line 4, in <module> 

    File "/tmp/easy_install-AYV_bv/rfc3987-1.3.1/rfc3987.py", line 324, in <module> 
    File "/tmp/easy_install-AYV_bv/rfc3987-1.3.1/rfc3987.py", line 323, in <genexpr> 
    File "/tmp/easy_install-AYV_bv/rfc3987-1.3.1/rfc3987.py", line 319, in _interpret_unicode_escapes 
ValueError: zero length field name in format 

Если я попробуйте просто easy_install rfc3987 У меня такая же ошибка.

Есть ли способы обойти это?

+0

Как примечание: Почему вы используете 'easy_install', а не' pip'? И «распространять», а не «setuptools»? – abarnert

+1

Буксировка незначительных вещей: регистрация в стандартной библиотеке, вы не должны ставить ее в install_requires; simplejson был интегрирован в стандартную библиотеку в 2.6 (как json). –

+0

Спасибо @ ÉricAraujo, я вношу соответствующие изменения – Vor

ответ

1

rfc3987 утверждает, что он работает на Python 2.7 и 3.x. Вы пытаетесь установить его на 2.6. Так оно терпит неудачу.

Проблема не имеет ничего общего с вашим собственным пакетом или с easy_install. Если вы загрузите tarball вручную и запустите python2.6 setup.py install, вы получите ту же ошибку. И на самом деле, по крайней мере в 1.3.1, есть код, который явно не является законным в Python 2.6, например this function.


the git history С, похоже, были внесены изменения, чтобы сделать его Python 2.6 совместимы, так что следующий релиз может работать. До тех пор вы не сможете использовать его с версии 2.6.

+0

Большое спасибо, что объясняет все – Vor

Смежные вопросы