Python多版本问题咨询:设置Python3.9为默认及ModuleNotFoundError排查
问题解决:设置Python3.9为默认版本及第三方模块缺失问题
一、将Python3.9设为python3默认版本
根据你是否拥有管理员权限,提供两种可行方案:
方案1:用户级别名设置(无sudo权限可用)
- 临时生效:在当前终端执行以下命令,重启终端后失效:
先执行alias python3=$(which python3.9)which python3.9确认Python3.9的安装路径,确保路径无误。 - 永久生效:编辑你的shell配置文件(如
~/.bashrc或~/.zshrc,取决于使用的shell),在文件末尾添加上述alias命令,然后执行:source ~/.bashrc # 对应bash环境 # 或 source ~/.zshrc 对应zsh环境
方案2:系统级版本管理(需sudo权限)
如果管理员允许使用sudo,可通过update-alternatives工具切换默认版本:
- 将Python3.6和3.9加入备选列表:
末尾数字为优先级,数字越大优先级越高。sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2 - 选择默认版本:
按提示输入对应Python3.9的序号即可完成切换。sudo update-alternatives --config python3
二、Python3.9导入第三方库报错的原因及解决
原因
每个Python版本都有独立的site-packages目录(用于存放第三方模块),你之前通过python3(即Python3.6)安装的模块,都存储在Python3.6的专属目录中,Python3.9无法直接访问该路径,因此会抛出ModuleNotFoundError。
解决办法
- 用Python3.9的pip安装对应模块:
先确认Python3.9的pip工具存在,执行which pip3.9,然后用它安装所需模块:
将# 系统级安装(需sudo权限) sudo pip3.9 install pandas # 用户级安装(无sudo权限,模块将安装在个人目录) pip3.9 install --user pandaspandas替换为你需要的其他模块即可。 - 临时方案:手动添加Python3.6的模块路径(不推荐):
若不想重新安装模块,可临时在脚本开头添加Python3.6的site-packages路径,但可能引发版本兼容问题:
先获取Python3.6的模块路径:
然后在脚本开头添加:python3 -c "import site; print(site.getsitepackages())"import sys sys.path.append('/usr/lib/python3.6/site-packages') # 替换为实际输出的路径
内容的提问来源于stack exchange,提问作者CTZenScientist
相关产品推荐
相关产品推荐

