【问题标题】:Updates of pyOpenSSL and pandas using 'pip' fail with "TypeError: resolve() got an unexpected keyword argument 'replace_conflicting'"使用 'pip' 更新 pyOpenSSL 和 pandas 失败并显示“TypeError: resolve() got an unexpected keyword argument 'replace_conflicting'”
【发布时间】:2014-03-07 20:30:17
【问题描述】:

当我尝试更新或安装pandas 或pyOpenSSL 的任何版本(使用sudo pip --[un]install|update [--no-use-wheel] [pandas|pyOpenSSL|xattr|stevedore] 的任何实例,使用pip 1.5.4)时,我得到:

Command python setup.py egg_info failed with error code 1 in /private/tmp/pip_build_root/pandas
Storing debug log for failure in /Users/Rax/Library/Logs/pip.log
...
TypeError: resolve() got an unexpected keyword argument 'replace_conflicting'

为什么我会收到此错误,我可以做些什么来避免它?


OSX 10.9.2;蟒蛇2.7.5; setuptools3.4.3.

关于错误报告的更多细节(pandas):

Downloading/unpacking pandas
  Downloading pandas-0.13.1.tar.gz (6.1MB): 6.1MB downloaded
  Running setup.py (path:/private/tmp/pip_build_root/pandas/setup.py) egg_info for package pandas
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/private/tmp/pip_build_root/pandas/setup.py", line 590, in <module>
        **setuptools_kwargs)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 239, in __init__
        self.fetch_build_eggs(attrs.pop('setup_requires'))
      File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 264, in fetch_build_eggs
        replace_conflicting=True
    TypeError: resolve() got an unexpected keyword argument 'replace_conflicting'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/private/tmp/pip_build_root/pandas/setup.py", line 590, in <module>

    **setuptools_kwargs)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup

    _setup_distribution = dist = klass(attrs)

  File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 239, in __init__

    self.fetch_build_eggs(attrs.pop('setup_requires'))

  File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 264, in fetch_build_eggs

    replace_conflicting=True

TypeError: resolve() got an unexpected keyword argument 'replace_conflicting'

/Users/Rax/Library/Logs/pip.log的内容:

Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 274, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Python/2.7/site-packages/pip/req.py", line 1215, in prepare_files
    req_to_install.run_egg_info()
  File "/Library/Python/2.7/site-packages/pip/req.py", line 321, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/Library/Python/2.7/site-packages/pip/util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py egg_info failed with error code 1 in /private/tmp/pip_build_root/pandas

Cython          - 0.20.1       - active 
Flask           - 0.10.1       - active 
Jinja2          - 2.7.2        - active 
MarkupSafe      - 0.19         - active 
PyRSS2Gen       - 1.1          - active 
Pygments        - 1.6          - active 
Python          - 2.7.5        - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload)
Sphinx          - 1.2.2        - active 
Twisted         - 13.2.0       - active 
Werkzeug        - 0.9.4        - active 
altgraph        - 0.11         - active 
astropy         - 0.3          - active 
backports.ssl-match-hostname - 3.4.0.2      - active 
bdist-mpkg      - 0.5.0        - active 
brewer2mpl      - 1.3.2        - active 
cffi            - 0.8.2        - active 
colorama        - 0.2.7        - active 
configobj       - 5.0.1        - active 
dill            - 0.2b1        - active 
distribute      - 0.7.3        - active 
docutils        - 0.11         - active 
ggplot          - 0.4.7        - active 
ipython         - 1.2.1        - active 
itsdangerous    - 0.23         - active 
macholib        - 1.6          - active 
matplotlib      - 1.3.1        - active 
modulegraph     - 0.11         - active 
mpltools        - 0.1          - active 
nose            - 1.3.0        - active 
numexpr         - 2.3.1        - active 
numpy           - 1.8.0        - active 
numpydoc        - 0.4          - active 
pandas          - 0.13.1       - active 
patsy           - 0.2.1        - active 
pika            - 0.9.13       - active 
pip             - 1.5.4        - active 
prettytable     - 0.7.2        - active 
progressbar     - 2.2          - active 
py2app          - 0.8          - active 
pycparser       - 2.10         - active 
pyparsing       - 2.0.1        - active 
python-dateutil - 2.2          - active 
pytz            - 2014.1.1     - active 
pyzmq           - 14.0.1       - active 
readline        - 6.2.4.1      - active 
rpy2            - 2.3.9        - active 
scikit-learn    - 0.14.1       - active 
scipy           - 0.13.3       - active 
setuptools      - 3.4.3        - active 
sphinx-argparse - 0.1.9        - active 
sphinxcontrib-napoleon - 0.2.6        - active 
sphinxcontrib-programoutput - 0.8          - active 
statsmodels     - 0.5.0        - active 
stevedore       - 0.14.1       - active 
sympy           - 0.7.5        - active 
tornado         - 3.2          - active 
virtualenv-clone - 0.2.4        - active 
virtualenv      - 1.11.4       - active 
virtualenvwrapper - 4.2          - active 
websocket-client - 0.12.0       - active 
wsgiref         - 0.1.2        - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7)
xattr           - 0.7.4        - active 
yhat            - 0.6.14       - active 
yolk            - 0.4.3        - active 
zope.interface  - 4.0.5        - active 

FWIW,我可以在虚拟环境中成功安装pandas。如果我将它从那里复制回出现此错误的环境并运行nosetests pandas,我会得到:

..SS..SS..SS..SS/Library/Python/2.7/site-packages/pandas/core/index.py:910: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
  result.sort()
..SS..SS..SS..SS..SSSSSSSSSS..SS..SS..SSSS.S.S...........SS..SS..SS..........................SSSSSSSSSS.SSSS.....SSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSS..................S.....S........................................................................................................................................................................................................................................................................SS......................................................................................................SSSS.......................SSS..............................................................................................................................................S.......................SSSSSSS...........................................................................................S......................................................................................................................................................S.........................................S..S..S....S........................................................S......S.S.......S...S..S............S............................................................................................................................................................................................S............................................................................S........................................./Library/Python/2.7/site-packages/numpy/core/_methods.py:55: RuntimeWarning: Mean of empty slice.
  warnings.warn("Mean of empty slice.", RuntimeWarning)
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S...............................................
----------------------------------------------------------------------
Ran 4466 tests in 230.555s

OK (SKIP=330)

如果我在虚拟环境中运行测试,这也是我得到的。

【问题讨论】:

  • 你能做一个($pip freeze)看看你还有什么其他的包吗?这只发生在 ($pip install pandas --upgrade) 还是您对其他软件包安装/升级也有问题?
  • @Will: 上面添加的freeze 的输出(卸载pandas 后)同时测试pip --[un]install|update [--no-use-wheel] pandas 的其他变体的其他版本,所有这些都以相同的方式失败,仅适用于pandas (在我尝试过的最近更新的软件包中)。
  • 嗯,这真的很奇怪。所有必要的库(例如 Cython)都与您的相似,唯一的区别是您拥有 pyobjc-framework。设置 virtualenv 然后安装 pandas 在那里工作吗?我只是在猜测这一点,但是您最近安装了自制软件还是修改了您的 bash_profile?
  • @Will:最近唯一的变化是在发布时更新到当前的 Cython。

标签: python pandas installation pip pyopenssl


【解决方案1】:

如果您在 OSX 上,我认为避免您遇到的错误的最简单解决方案是使用 Homebrew 来管理 Python、pip 和 pandas 等库的安装。

如果您已经在使用 Homebrew(您的问题不清楚)。试试运行brew doctor,看看有没有报错。

要让pip 与 Homebrew 协同工作:

  • ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装 Homebrew。

  • brew doctor 并确保在运行此命令时不会出错。遵循它的建议,尤其是关于$PATH 环境变量。

  • brew install python 安装 Python 2.7(和 pip)

  • pip install pandas

【讨论】:

  • 但是从问题中不清楚的是,您使用的是随 Homebrew 安装的 pip。当您使用 Homebrew 安装 Python 时,您可以在不使用 sudo 的情况下使用 pip 并且一切都应该正常工作 请参阅:github.com/Homebrew/homebrew/wiki/Homebrew-and-Python。根据经验,使用 brewed Python 和 brewed pip,您往往会避免像上面遇到的包安装错误。
  • 我不使用自制软件。但让我们看看这是怎么回事:如何从使用 pip 的已建立 Python 安装到使用 Homebrew 的安装?
  • 顺便说一句,我怀疑 Hombrew 实际上不会有所作为。我怀疑numpy 需要使用最新的 Cython 进行重建。
  • 查看我编辑的答案。您必须重建numpy 可能是对的。这对于 Homebrew 来说也是微不足道的。
  • 我已更新错误报告并添加了有关我看到的错误消息的更多详细信息。重建 numpy 没有帮助。
【解决方案2】:

likely cause 是存在多个版本的setuptools,在 Python 路径上的旧版本比新版本早。出于安装目的,可以通过使用

开始调用pip 来暂时克服此问题
PYTHONPATH=/PATH_TO_YOUR_CURRENT_PACKAGES/site-packages pip ...

你可以通过执行来确认是这样的

import pkg_resources
pkg_resources.__file__

在 Python 中并注意返回的 pkg_resources.pyc不在您当前站点包的位置。

在某些情况下,这也可以通过确保执行站点包目录中的pkg_resources.pyc 而不是系统包目录中的pkg_resources.pyc 来纠正(例如,通过删除后者)。

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 2021-06-18
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2021-01-26
    • 2022-01-12
    • 2015-09-23
    • 2021-06-03
    相关资源
    最近更新 更多