1

在使用python的pip(3)安装module时,可能会遇到如下错误:

ModuleNotFoundError: No module named 'distutils'

这是由于只有当python的版本介于3.4 - 3.11版本间时,python才提供了distutils模块,这间接的说明了,我们当前正在安装模块依赖的python版本为3.4 - 3.11,所以解决该问题的的根本的方法是将当前python的版本切换至3.4 - 3.11版本间(而不是在其它的版本下安装所谓的 distutils 模块),以macos为例,示例如下:

$ brew install pyenv
$ pyenv install 3.11  
$ pyenv global 3.11

然后输入:pyenv init,根据提示向特定的文件中加入相关的代码:

提示如下;

panjie@panjiedeMac-Studio ~ % pyenv init
# Load pyenv automatically by appending
# the following to 
# ~/.zprofile (for login shells)
# and ~/.zshrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# Restart your shell for the changes to take effect.

它在说:分别向 ~/.zprofile以及~/.zshrc 中加入下面的代码后,然后重启shell:

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

重启shell后,输入python --version来确认版本号:

panjie@bogon ~ % python --version
Python 3.11.9

最后在当前版本下创建一个虚拟环境env,比如起名为test:

panjie@bogon ~ % python -m venv test

在接下来的日子里,便可以使用test/bin中的python来启动指定的3.11.9版本了。

为每一个项目创建一个env的好处是:创建1次以后,再也不用为环境的事情发愁了。


潘杰
3.1k 声望238 粉丝