【问题标题】:pkg_resources.DistributionNotFound: The 'platformdirs<3,>=2' distribution was not found and is required by virtualenvpkg_resources.DistributionNotFound: 'platformdirs<3,>=2' 分发未找到,virtualenv 需要它
【发布时间】:2021-11-26 23:18:36
【问题描述】:

我正在尝试使用 pip 创建一个隔离环境,“使用 Ski-Kit 和 Tensor Flow 进行机器学习”中的说明让我运行这些代码行,这就是我得到的输出。我已经尝试卸载pipenv,这会产生另一个找不到 pipenv 命令的错误。不知道如何解决这个问题,有人可以帮忙吗?我正在使用带有 python3.9 的 Mac

Darrens-MacBook-Air:~ odonned4$ cd $ML_PATH

Darrens-MacBook-Air:~ odonned4$ virtualenv env

  File "/usr/local/bin/virtualenv", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3241, in <module>
    @_call_aside
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3225, in _call_aside
    f(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 585, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 598, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'platformdirs<3,>=2' distribution was not found and is required by virtualenv```

【问题讨论】:

    标签: python-3.x pip virtualenv


    【解决方案1】:

    有什么问题?

    您正在尝试运行 Python 3.9,对吗?好吧,根据您的错误消息,您似乎正在调用 Python 2.7:

    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3241, in <module>
                                                               ^^^
    

    之所以会出现这种混乱,是因为 macOS 出于...兼容性的原因将 Python 2.7 添加到了发行版中。而且,您可能在该发行版上有 virtualenv,但没有 platformdirs,因此创建 virtualenv 失败。

    如何解决问题?

    有很多方法可以澄清这种混淆。一个好方法是使用python3 -m virtualenv(而不是virtualenv)。那应该使用 Python 3 创建一个 virtualenv。

    此外,您可以确保在 Python 3.9 安装中可以使用 virtualenv 包。要确定这一点,请查看在键入 python3 -m pip list 时是否出现 virtualenv。如果没有,请运行python3 -m pip install virtualenv

    【讨论】:

      【解决方案2】:

      这里真正的问题是 Mac 很难使用python2。在使用virtualenv 时,您可能已经运行了以下命令:

      $ /usr/bin/easy_install virtualenv
      

      应该将virtualenv 添加到/usr/bin/ 以供直接使用,但要与默认的python2 一起使用,而不是您可能自己安装的python3.9

      一个简单的方法是使用

      $ python3 -m virtualenv <env-name>
      

      而不是

      $ virtualenv <env-name>
      

      或者在我的情况下,在 .bash_profile 中添加一个别名:

      $ alias virtualenv="python3 -m virtualenv"
      

      这是一种管道胶带解决方案,但效果也很好。

      【讨论】:

        【解决方案3】:

        尝试卸载setuptools

        pip uninstall -y setuptools 
        

        然后重新安装

        pip install setuptools
        

        使用

        升级设置工具
        pip install --upgrade setuptools
        

        对我来说,我之前在 python 3.8 中遇到过这个问题。 我修复了它

        sudo apt install --reinstall python3-pkg-resources python3-setuptools
        

        先卸载virtualenv和setuptools,找到pip缓存文件夹。

        pip cache dir
        

        删除缓存并安装 virtualenv 和 setuptools。

        我只是说了一些步骤.. 试试这个。可以帮忙:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-12
          • 2016-09-12
          • 1970-01-01
          • 2016-11-29
          • 2019-10-19
          • 1970-01-01
          • 2019-11-12
          相关资源
          最近更新 更多