AttributeError:module' pkg_resources'没有属性' safe_name' oauthlib安装

时间:2016-10-07 20:22:06

标签: python

我尝试安装tweepy(以及扩展名oauthlib),并且在尝试安装时遇到以下错误:

Collecting requests-oauthlib>=0.4.1 (from tweepy)
Using cached requests_oauthlib-0.7.0-py2.py3-none-any.whl
Collecting oauthlib>=0.6.2 (from requests-oauthlib>=0.4.1->tweepy)
  Using cached oauthlib-2.0.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/t7/751h0y1102z99ysr6659yjcr0000gn/T/pip-build-aoklhwtw/oauthlib/setup.py", line 70, in <module>
    'Topic :: Software Development :: Libraries :: Python Modules',
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 108, in setup
    _setup_distribution = dist = klass(attrs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/setuptools/dist.py", line 263, in __init__
    self.patch_missing_pkg_info(attrs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/setuptools/dist.py", line 246, in patch_missing_pkg_info
    key = pkg_resources.safe_name(str(attrs['name'])).lower()
AttributeError: module 'pkg_resources' has no attribute 'safe_name'

有趣的是,/private/var/folders/t7/751h0y1102z99ysr6659yjcr0000gn/T/pip-build-aoklhwtw/oauthlib/文件夹不存在,所以我可以 甚至删除/看得更近。

任何可能导致这种情况的想法?

3 个答案:

答案 0 :(得分:8)

找到解决方案。我不得不升级setuptools,所以:

$ sudo pip3 install --upgrade setuptools

答案 1 :(得分:3)

我在virtualenv环境中运行pip时遇到了相同的错误,但是就我而言,setuptools已经是最新的。

什么为我解决了

# exit the virtualenv
deactivate

# re-initialize your virtual environment (your command may differ)
virtualenv --python=python3.7 env

# activate the virtualenv again
source env/bin/activate

# re-install your dependencies
pip install -r requirements.txt

根本原因

在我的案例中,根本原因是我意外删除了virtualenv在ubuntu中创建的pkg-resources pip程序包。由于pip install pkg-resouces失败(pkg-resources不是真正的pypi软件包),因此重新初始化virtualenv是取回该软件包的唯一方法。

答案 2 :(得分:0)

我不得不使用

pipenv --rm

然后我重新安装了 Django,它运行良好。