简体   繁体   English

easy_install无法安装软件包

[英]easy_install can't install package

I'm trying to write a setup.py file for my python project: 我正在尝试为我的python项目编写一个setup.py文件:

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

When I execute it I'm getting this error: 当我执行它时,我得到这个错误:

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

If I try just easy_install rfc3987 I'm getting the same error. 如果我只尝试easy_install rfc3987遇到相同的错误。

Are there any ways to go around this? 有什么办法可以解决这个问题?

rfc3987 claims that it works on Python 2.7 and 3.x. rfc3987声称它可以在Python 2.7和3.x上运行。 You're trying to install it on 2.6. 您正在尝试将其安装在2.6上。 So it fails. 所以失败了。

The problem has nothing to do with your own package, or with easy_install . 该问题与您自己的软件包或easy_install无关。 If you download the tarball manually and run python2.6 setup.py install , you get the same error. 如果您手动下载tarball并运行python2.6 setup.py install ,则会遇到相同的错误。 And in fact, at least in 1.3.1, there's code that clearly isn't legal under Python 2.6, like this function . 实际上,至少在1.3.1中,有类似Python 函数这样的代码在Python 2.6下显然是不合法的。


From the git history , it looks like there have been changes to make it Python 2.6 compatible, so the next release may work. git历史记录来看,似乎已经进行了一些更改使其与Python 2.6兼容,因此下一个发行版可能会起作用。 Until then, you won't be able to use it from 2.6. 在此之前,您将无法从2.6开始使用它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM