python - 在 Python 3.x 上安装 enum34 会破坏 Python3.x 的 pip

标签 python python-3.x pip

我使用 PythonAnywhere 托管了一些需要 fbchat 模块的 Python 脚本。我在没有使用 virtualenv 的情况下在 Python 3.6(使用用户方案)上安装了模块,并且模块安装了 enum34 作为依赖项。

我知道 enum34 与高于 3.4 的 Python 版本不兼容。但是我现在也无法卸载它,因为调用 pip3.x 会出现此错误:

Traceback (most recent call last):
  File "/usr/local/bin/pip3.6", line 4, in <module>
    import re
  File "/usr/lib/python3.6/re.py", line 142, in <module>
    class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'

和命令 $ python3.6 -m pip 给出:

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.6/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/local/lib/python3.6/dist-packages/pip/__init__.py", line 4, in <module>
    import locale
  File "/usr/lib/python3.6/locale.py", line 16, in <module>
    import re
  File "/usr/lib/python3.6/re.py", line 142, in <module>
    class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'

这些是重现的确切步骤,以及用于到达此处的唯一命令:

$ pip3.6 install --user fbchat

最佳答案

只需从您的 site-packages 中删除包手动文件夹。

首先找到它:

python3.6 -c 'import enum; print(enum.__file__)'

然后删除整个enum文件所在的目录,它将位于 site-packages 中目录。删除 enum34-<version>.dist-info旁边还有文件。

因为你使用了--user ,该软件包已安装在您的用户站 pip 目录中。您可以使用 site 获取位置模块也是:

python3.6 -m site --user-site

所以你可以删除有问题的包:

rm -rf `python3.6 -m site --user-site`/enum 
rm `python3.6 -m site --user-site`/enum-*.dist-info

关于python - 在 Python 3.x 上安装 enum34 会破坏 Python3.x 的 pip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45896474/

相关文章:

python - 参数无效错误:Load a (frozen) Tensorflow model into memory (While testing the model on local machine)

python - 如何使用 Scrapy 和 PyInstaller 在 Windows 10 中创建单个可执行文件?

python - 将字符串转换为 float : ValueError: could not convert string to float: '.'

python - 使用 add_edge_list() 方法创建图形的最佳方法是什么?

python - 在函数内编写循环会改变输出

python - 我尝试使用我安装的 python 包,但出现此错误

python - 在新行而不是单行上输出一组 json 对象

Python:如何只保留字符串的前 50 个字符

azure - 无法安装 Azure 包并出现 pip : ruamel. yaml 错误

python - 终端无法找到/使​​用 Pip3 包