cod*_*lue 257 ubuntu python python3
我正在使用 Ubuntu 16.04 LTS 。我已经python3安装了。安装了两个版本,python 3.4.3和python 3.6. 每当我使用python3命令时,它都会python 3.4.3默认使用。我想python 3.6与python3.
python3 --version 显示 version 3.4.3
我正在安装ansible支持version > 3.5. 所以,每当我在终端中输入 ansible 时,它都会抛出错误,因为python 3.4
sudo update-alternatives --config python3
update-alternatives: error: no alternatives for python3
Run Code Online (Sandbox Code Playgroud)
GAD*_*D3R 316
从评论:
sudo update-alternatives --config python
Run Code Online (Sandbox Code Playgroud)
会显示一个错误:
update-alternatives: error: no alternatives for python3
Run Code Online (Sandbox Code Playgroud)
你需要更新你的update-alternatives,然后你就可以设置你的默认 python 版本。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
Run Code Online (Sandbox Code Playgroud)
然后运行:
sudo update-alternatives --config python
Run Code Online (Sandbox Code Playgroud)
将 python3.6 设置为默认值。
或者使用以下命令将python3.6设置为默认值:
sudo update-alternatives --set python /usr/bin/python3.6
Run Code Online (Sandbox Code Playgroud)
小智 52
您可以通过应用以下简单步骤来实现这一点 -
python --versionsudo suupdate-alternatives --install /usr/bin/python python /usr/bin/python3 1python --versionNew*_*ewt 19
使用这些命令可以帮助您:
ls /usr/bin/python*alias python='/usr/bin/pythonxx'将此添加到. ~/.bashrc). ~/.bashrcpython --version小智 12
如果您的系统中有多个版本的 python。你只需要更新里面的python的符号链接/usr/bin/
root@irshad:/usr/bin# ls -lrth python*
lrwxrwxrwx 1 root root 9 Apr 16 2018 python -> python2.7
-rwxr-xr-x 1 root root 3.6M Nov 12 2018 python2.7
-rwxr-xr-x 2 root root 4.4M May 7 14:58 python3.6
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,如果你看到python --version你会得到python2.7的输出
现在使用以下命令更新 python 符号链接 -
root@irshad:/usr/bin# unlink python
root@irshad:/usr/bin# ln -s /usr/bin/python3.6 python
root@irshad:/usr/bin# python --version
Python 3.6.8
Run Code Online (Sandbox Code Playgroud)
小智 9
首先检查你是否有一个python3.6文件夹?
ls /usr/bin/python3.6
如果你有“python3.6”文件夹,你就可以开始了。现在更新替代品
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
Run Code Online (Sandbox Code Playgroud)
然后更新python3的新配置
sudo update-alternatives --config python3
Run Code Online (Sandbox Code Playgroud)
最后,检查默认的python3版本:
python3 --version
Run Code Online (Sandbox Code Playgroud)
小智 6
一个简单的答案是为 python3.6 添加别名。
只需在文件 ~/.bashrc : 中添加这一行alias python3="python3.6",然后关闭终端并打开一个新终端。现在,当您键入时,python3 xxx它会被翻译为python3.6 xxx.
此解决方案无需过多调整系统即可解决您的问题。
编辑 :
正如Mikael Kjær指出的那样,这是您的系统对 ansible 的错误配置。
将
ansible_python_interpreter配置选项设置为 /usr/bin/python3。ansible_python_interpreter 配置选项通常按主机设置为与主机或主机组关联的清单变量:Run Code Online (Sandbox Code Playgroud)# Example inventory that makes an alias for localhost that uses python3 [py3-hosts] localhost-py3 ansible_host=localhost ansible_connection=local [py3-hosts:vars] ansible_python_interpreter=/usr/bin/python3
正如这里看到的关于配置文件:
可以在将按以下顺序处理的配置文件中进行更改和使用:
Run Code Online (Sandbox Code Playgroud)* ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg
小智 6
为 /usr/bin/python3 创建符号链接。在我的 LinuxMint 中:
# ls -lh /usr/bin/python3 /usr/bin/python
lrwxrwxrwx 1 root root 9 ??? 24 2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 ??? 6 2017 /usr/bin/python3 -> python3.5
# mv /usr/bin/python /usr/bin/python.bak
# cp /usr/bin/python3 /usr/bin/python
# python --version
Python 3.5.2
Run Code Online (Sandbox Code Playgroud)