我正在使用Ubuntu 16.04 LTS。我已经安装了python3。安装了两个版本,python 3.4.3python 3.6。每当我使用python3命令时,默认情况下都会使用python 3.4.3。我想将python 3.6python3一起使用。

python3 --version显示version 3.4.3

我正在安装支持ansibleversion > 3.5。因此,每当我在终端中键入ansible时,由于python 3.4

评论

用于执行python 3.6的命令是什么?

命令是:-python3.6

您的sudo update-alternatives --config python3怎么说?

update-alternatives:错误:python3没有替代品

@Mikael不同的Python版本不是Ubuntu上的替代版本。操作系统依赖于要安装的特定版本。

#1 楼

来自注释:

sudo update-alternatives --config python


将显示一个错误:

update-alternatives: error: no alternatives for python3 


您需要更新您的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


然后运行:

sudo update-alternatives --config python


将python3.6设置为默认值。

或使用以下命令将python3.6设置为默认值:

sudo update-alternatives  --set python /usr/bin/python3.6


评论


这个答案可能会适得其反。选择其他版本的python后,尝试运行sudo apt update。如果出现类似ModuleNotFoundError的错误:您没有想要名为/ apt / pkg的模块,请转到/ usr / lib / python3 / dist-packages并创建符号链接:ln -s apt_pkg.cpython- {34m,36m} -x86_64- linux-gnu.so。

– Giacomo Alzetta
19年5月30日在8:22

@ GAD3R谢谢。我设法手动创建了一个符号链接以指向Python 3.6。另外,我没有安装3.7。

– Slava Fomin II
19年9月11日在8:58

用这种方法使python3指向python3.8,对我来说断了gnome-terminal。

–鲍里斯(Boris)
19-10-17在23:49



@Johny我刚刚在〜/ .bash_profile中添加了别名python =“ python3.8”

–鲍里斯(Boris)
19年11月25日在21:02

在Ubuntu 18.04 LTS中可以正常工作而不会破坏APT。请注意那些困惑的人:如果收到错误消息:python消息没有替代方法,那么您需要先运行--install命令(替换您要使用的python版本,并且最后的数字只是(订购),然后再次运行--config命令,系统将询问您默认使用哪个版本。

–tpartee
20-2-25在6:50

#2 楼

您可以通过以下简单步骤来实现此目的-在终端上检查python版本-python --version

获取root用户特权。在终端类型上-sudo su

写下root用户密码
执行此命令以切换到python 3.6-update-alternatives --install /usr/bin/python python /usr/bin/python3 1

检查python版本-python --version

完成。


评论


在Ubuntu 18.04上运行良好。比其他解决方案简单。非常感谢

– Mohammad Heydari
19年8月13日在23:29

这有效:sudo update-alternatives --set python /usr/bin/python3.7 python --version

– Sam-T
19/12/23在0:28

也可以在Pop上使用!操作系统

–弗朗西斯
20年1月18日,下午3:27

第3步的意义是什么?

– goonerify
20年2月1日在18:17

@goonerify这是步骤2的后半部分

– Cameron Tacklind
20-3-30在11:16

#3 楼

使用以下命令可以帮助您:


检查python的版本:
ls /usr/bin/python*

别名:
alias python='/usr/bin/pythonxx'(将此添加到. ~/.bashrc
重新登录或获取. ~/.bashrc

再次检查python版本:
python --version



评论


谢谢,但是重新启动计算机后,主要的python仍然是ex python 2.7

– Mohammad Heydari
19年8月13日在23:25

您应该添加脚本以修改〜/ .bashrc中的默认值。然后,您将使其永远工作。

– Newt
19年11月4日13:32



像这样:export python = / home / xxx(您的py3目录)

– Newt
19年11月4日在13:40

#4 楼

一个简单的答案是为python3.6添加一个别名。只需在文件〜/ .bashrc:alias python3="python3.6"中添加此行,然后关闭您的终端并打开一个新终端即可。现在,当您键入python3 xxx时,它将转换为python3.6 xxx

此解决方案可解决您的问题,而无需过多调整系统。 >正如MikaelKjær所指出的,这是对您的系统的错误配置。 > / usr / bin / python3。 ansible_python_interpreter配置选项
通常按主机设置为与一个主机或一组主机关联的清单变量:

  # 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



关于配置文件的信息如下所示:


可以在配置文件中进行更改并使用,将按以下顺序处理:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg



评论


实际上,我正在安装ansible,它仅支持> python 3.5

– codeclue
17年12月13日在9:35

您可以将ansible_python_interpreter变量设置为使用python3.6。 docs.ansible.com/ansible/latest/python_3_support.html

– MikaelKjær
17年12月13日在9:37

@MikaelKjær我刚刚在评论中添加了您的评论

–user264413
17年12月13日在9:46

#5 楼

如果您的系统中有多个版本的python。您只需要在/usr/bin/内部更新python的符号链接

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


在上面的示例中,如果看到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


评论


最佳答案!谢谢你,朋友 :)

– Bryan_C
20 Dec 18'在3:52



#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


评论


这打破了apt安装程序。

– jws
20 May 5 '21:30

#7 楼

首先检查您是否有python3.6文件夹?
ls /usr/bin/python3.6
如果您有“ python3.6”文件夹,那很好。现在,更新替代品
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

然后更新python3的新配置
sudo update-alternatives --config python3

最后,检查默认的python3版本:
python3 --version


评论


尼特:您在bin下没有文件夹,您具有可执行文件。

–mayid
20-10-1在22:52

#8 楼

您可以通过ln -sf python3.6 python3内的/usr/bin来更改符号链接。这样,当您调用python3时,它将执行python3.6

#9 楼

update-alternatives是将系统符号链接更改为用户定义/管理员定义的符号链接。
如果您的系统中安装了多个python3版本,并且想要控制在调用python3时调用哪个python3版本。如果要以后更改优先级,请执行以下

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2


运行以下命令。

update-alternatives --config python3


说明:-

sudo update-alternatives --install <symlink_origin> <name_of_config> <symlink_destination> <priority>


您可以继续将name_of_config更改为python4,但随后必须使用python4调用update-alternatives --config进行重新配置。
使用这种方法,您可以分别控制系统python版本和python3版本。