【问题标题】:AttributeError when running pip in virtualenv在 virtualenv 中运行 pip 时出现 AttributeError
【发布时间】:2015-04-01 07:59:12
【问题描述】:

我最近使用自制软件将 python 从 2.7.6 升级到了 2.7.9。然后我尝试“重新虚拟化”一个现有的虚拟环境

sudo virtualenv -p python2.7 existingvenv

但是我得到这个错误:

Traceback (most recent call last):
  File "venv.../bin/pip", line 7, in <module>
    from pip import main
  File "venv.../lib/python2.7/site-packages/pip/__init__.py", line 9, in <module>
    from pip.log import logger
  File "venv.../lib/python2.7/site-packages/pip/log.py", line 8, in <module>
    from pip import backwardcompat
  File "venv.../lib/python2.7/site-packages/pip/backwardcompat/__init__.py", line 66, in <module>
    from urllib2 import URLError, HTTPError
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 93, in <module>
    import hashlib
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 138, in <module>
    _hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 2352, in <module>
    main()
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 825, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 993, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 961, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 903, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/robertelliott...hflow-app/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

在上述活动虚拟环境中运行任何pip install x 时,我也会收到上述错误。

我在创建 new virtualenv 时没有收到错误消息:

$ virtualenv -p python2.7 newvenv
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
New python executable in newenv/bin/python
Installing setuptools, pip...done.

现有的 virtualenv 中是否有旧的符号链接或其他东西导致了问题,我该如何解决?

【问题讨论】:

  • 你为什么不直接使用一个新的 virtualenv 呢?从现有的 requirements.txt 安装包

标签: python pip virtualenv


【解决方案1】:

这是因为 Python 中的一个新特性,wheel 0.24 不兼容。您会在 Python 2.7 系统安装下找到一个名为 virtualenv_support 的文件夹,其中包含 setuptools、pip 和 wheel 的基本安装文件。有几个解决方案。最简单的方法是从 virtualenv_support 文件夹中删除 wheel-0.24*。如果你想更进一步,你可以下载 0.26 版本的 wheel .whl 文件并替换它。

【讨论】:

    【解决方案2】:

    你试过了吗:

    sudo virtualenv --clear -p python2.7 existingvenv

    ?

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      相关资源
      最近更新 更多