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

Posted

技术标签:

【中文标题】AttributeError:模块 \'pkg_resources\' 没有属性 \'safe_name\' oauthlib 安装【英文标题】:AttributeError: module 'pkg_resources' has no attribute 'safe_name' oauthlib installAttributeError:模块 'pkg_resources' 没有属性 'safe_name' oauthlib 安装 【发布时间】:2017-02-16 22:11:06 【问题描述】:

我正在尝试安装 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/ 文件夹不存在,所以我可以 甚至不要删除它/仔细查看它。

有什么可能导致这种情况的想法吗?

【问题讨论】:

【参考方案1】:

找到了解决办法。我不得不升级 setuptools,所以:

$ sudo pip3 install --upgrade setuptools

【讨论】:

我尝试安装 channels_redis,但这个答案不起作用 这没有链接到 channel_redis @DanielM 我知道。有同样的错误AttributeError: module 'pkg_resources' has no attribute 'safe_name'【参考方案2】:

我在 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 是恢复该包的唯一方法。

【讨论】:

这对我也有帮助,但是我需要在重新初始化之前删除 .venv 文件夹。 另外,pip install setuptools --force 帮助我恢复已卸载的 pkg-resources。供参考,***: No module named pkg_resources【参考方案3】:

我不得不使用

pipenv --rm

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

【讨论】:

以上是关于AttributeError:模块 'pkg_resources' 没有属性 'safe_name' oauthlib 安装的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:模块'asyncio'没有属性'run'

AttributeError:模块'mysql'没有属性'connector'

AttributeError:“模块”对象没有属性“作者”

AttributeError:模块 'urllib' 没有属性 'parse'

AttributeError:模块“cupy”没有属性“cupyx”

AttributeError:“模块”对象没有属性