You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ubuntu虚拟机中以root身份运行Python 3.11且不修改系统全局Python版本

如何在Ubuntu虚拟机中以root身份运行Python 3.11且不修改系统全局Python版本

嗨,我来帮你搞定这个需求!你已经用上pyenv了,这路子选得很对,咱们完全可以基于它来实现,根本不用碰系统自带的Python版本,放心~

方法一:给root用户配置pyenv,直接管理Python 3.11

  • 首先回到你的普通用户,确认Python 3.11已经通过pyenv安装好:
    pyenv versions
    
    输出里应该能看到3.11开头的版本号,比如3.11.4之类的。
  • 接下来切换到root用户:
    sudo su -
    
  • 现在要让root也能用上pyenv,把你普通用户下pyenv的环境配置复制到root的bash配置里。普通用户的~/.bashrc(如果用zsh就是~/.zshrc)里应该有这几行:
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
    你可以把这几行复制到root的~/.bashrc文件末尾,保存后执行source ~/.bashrc让配置立即生效。
  • 现在在root下执行pyenv versions,就能看到和普通用户一样的版本列表了。你可以设置root用户专属的全局Python版本:
    pyenv global 3.11.x  # 把x换成你实际的版本号,比如3.11.4
    
    之后root下直接输入python或者python3,调用的就是3.11版本了,完全不会影响系统全局的Python。

方法二:直接用绝对路径调用pyenv安装的Python 3.11(不用给root配pyenv)

如果不想折腾root的环境变量,这个方法更直接:

  • 先在普通用户下找到pyenv安装的Python 3.11的实际路径:
    pyenv which python3.11
    
    会得到类似/home/你的用户名/.pyenv/versions/3.11.4/bin/python3.11的路径。
  • 之后要以root身份运行脚本时,直接用这个绝对路径:
    sudo /home/你的用户名/.pyenv/versions/3.11.4/bin/python3.11 你的脚本.py
    
    这样就跳过了环境变量配置,直接指定版本运行,干净又安全。

关于系统级安装工具的小提示

如果需要用这个Python 3.11安装系统级的工具(不用虚拟环境),只要在root用户下配置好pyenv后,直接用pip install 工具名就行,这时候pip会自动对应到3.11版本,安装的工具也会和这个版本绑定,不会干扰系统Python的包。

最后提醒下:root权限要谨慎使用,只在必须的场景(比如你抓网络流量的需求)下用root运行Python脚本哦~

备注:内容来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:24:35