pkg_resources.DistributionNotFound:找不到 'platformdirs<3,>=2' 发行版,并且是 virtualenv 所需要的

Dar*_*ren 8 pip virtualenv python-3.x

我正在尝试使用 pip 创建一个隔离环境,“Hands on Machine Learning With Ski-Kit and Tensor Flow”中的说明让我运行这些代码行,这是我得到的输出。我尝试过卸载pipenv,但这会产生另一个错误,其中找不到 pipelinev 命令。不知道如何解决这个问题,有人可以帮忙吗?我使用的是带有 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```
Run Code Online (Sandbox Code Playgroud)

Die*_*rez 8

问题是什么?

您正在尝试运行 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>
                                                           ^^^
Run Code Online (Sandbox Code Playgroud)

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

如何解决问题?

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

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