Python 当用作sudo时,Pyenv不显示所有版本

Python 当用作sudo时,Pyenv不显示所有版本,python,centos,pyenv,Python,Centos,Pyenv,我使用pyenv安装了3.5.2和3.5.3版本 # pyenv versions * system (set by /usr/local/pyenv/version) 3.5.2 3.5.3 但是,当我以sudo身份运行此命令时,它不会以root身份登录,它不会提供所有版本 $ sudo /usr/local/bin/pyenv versions * system (set by /root/.pyenv/version) 我尝试使用设置PYENV_根路径,但这也不起作用 $ ex

我使用pyenv安装了3.5.2和3.5.3版本

# pyenv versions
* system (set by /usr/local/pyenv/version)
  3.5.2
  3.5.3
但是,当我以sudo身份运行此命令时,它不会以root身份登录,它不会提供所有版本

$ sudo /usr/local/bin/pyenv versions
* system (set by /root/.pyenv/version)
我尝试使用设置PYENV_根路径,但这也不起作用

$ export PYENV_ROOT=/usr/local/pyenv/
$ sudo /usr/local/pyenv/bin/pyenv versions
* system (set by /root/.pyenv/version)
我已经在myuser的.bash\u配置文件中设置了路径

$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export PYENV_ROOT=/usr/local/pyenv/
export PATH="/usr/local/pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
也在root用户中设置

我正在使用centos

$ cat /etc/issue
CentOS release 6.9 (Final)
这不起作用,因为PYENV_ROOT不会被传递到sudo中的环境。 试试这个:

$ sudo PYENV_ROOT=/usr/local/pyenv/ /usr/local/pyenv/bin/pyenv versions
或者这个:

$ export PYENV_ROOT=/usr/local/pyenv/
$ sudo -E /usr/local/pyenv/bin/pyenv versions
-E将使环境变量传递给pyenv。在sudo的手册页中:

root中的.bash_配置文件不起作用,因为在这种情况下sudo不会加载它。如果希望在.bash\u配置文件中编写配置,可以参考

$ sudo PYENV_ROOT=/usr/local/pyenv/ /usr/local/pyenv/bin/pyenv versions
$ export PYENV_ROOT=/usr/local/pyenv/
$ sudo -E /usr/local/pyenv/bin/pyenv versions
 -E, --preserve-env
             Indicates to the security policy that the user wishes to preserve their existing environment variables.  The security policy may return an error if the user does not have permission to
             preserve the environment.

 --preserve-env=list
             Indicates to the security policy that the user wishes to add the comma-separated list of environment variables to those preserved from the user's environment.  The security policy may
             return an error if the user does not have permission to preserve the environment.