博客 / 詳情

返回

ModuleNotFoundError: No module named 'setuptools'

在使用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次以後,再也不用為環境的事情發愁了。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.