Python程序命令执行Python 2。使用python3命令可以执行Python 3。如何使用python命令执行Python 3?
$ sudo apt install python-is-python3
~/.bashrc
或~/.bash_aliases
文件中:alias python=python3
source ~/.bashrc
或source ~/.bash_aliases
。$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3
command
来规避别名。$ command python --version
Python 2.7.6
\
。$ \python --version
Python 2.7.6
unalias
。$ unalias python
$ python --version
Python 2.7.6
python3
。升级是为了什么? - Radu Rădeanupython2
别名为 python
,并养成指定使用哪个的习惯,这样不是更好吗? - ryanjdilloncd /usr/bin
,然后 sudo rm python
以删除该符号链接,并且 sudo ln -s python3.6 python
(在执行之前请检查你的版本)。如果需要,你仍然可以使用 python2.7
。这种方法不被推荐,因为会涉及其他软件包的依赖关系,但我一直在使用它,并且长时间以来没有遇到任何问题。根据自己的风险承担能力使用。 - sdlinsalias python='python3'
在调用sudo python
时似乎不起作用。在这种情况下,它会打开默认的Python 2.7版本。 - Mitchell van Zuylen/usr/bin/env python
的程序是无效的。 - jkflying#!/usr/bin/env python3
,因为shebang是由内核运行的,不受别名的影响。 - wjandrea.bashrc
文件中添加了alias python=python3
... 是否可以添加另一个别名来将pip3
设置为默认值? - Hooman Bahreinialias sudo='sudo '
。别名只适用于命令的第一个单词。在 sudo python ./foo.py -i
中,命令是 sudo
,参数是 ["python", "./foo.py", "-i"]
,其中没有应用别名。您不希望将命令 file python
执行为 file python3
。然而,将 sudo
也作为 sudo
(空格很重要)的别名,使得 bash 在第一个参数上检查别名。 - 12431234123412341234123python-is-python3
软件包即可。sudo apt install python-is-python3
除此之外,你可以使用apt-mark hold
来阻止Python 2作为将来某个软件的依赖被安装:
sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib
pip
没有影响,或者为什么甚至没有一个相应的包pip-is-pip3
? - John J. Camilleriapt install python3-pip
命令将同时安装 pip
和 pip3
命令,两者都是 Python 3 版本。 - Boris Verkhovskiypython-is-python3
并忘记了这个软件包。当我在一个项目中遇到问题时,我不记得如何将python
恢复为运行python2
。Dhanyawaad @Boris
另外,@unlockme你是对的,我的许多(或几乎所有)python2
软件包都被卸载了。所以,我不得不安装python-is-python2
来恢复它们。 - Deepam Gupta[2016年6月]有关过渡信息的推荐来源是官方的Ubuntu Python页面。
~/.bashrc
、.bash_aliases
文件中设置一个别名(不同的文件,包括~/.bash_profile
,至少加载一次,主要用于组织目的,但可能因平台而异)。Python 虚拟环境也很好用。alias python=python3
alias python='/usr/bin/python3'
#!/usr/bin/env python3
的方式来实现跨平台兼容性。env
对于与虚拟环境混合使用非常方便。#!
)中不可用。如果你喜欢将alias python=python3作为首选,那么可以通过调用别名解释器来执行没有shebang的program.py
,例如python program.py
。对于同时安装了多个python3版本(如3.4和3.6)的系统,别名也可能很有用。python2.7
。仍然有一些可选软件包(或者需要桌面体验的程序)会拉取Python 2,所以你可能正在使用这些软件包。 - Antti Haapalapython3
,而不是python
。 - wjandrea#!/usr/bin/env python
和alias python=python3
不能执行Python3吗?让我再确认一下。 - Kevinupdate-alternatives
。$ sudo update-alternatives --config python
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
/usr/bin/python3
更改为您所需的Python版本。update-alternatives
对于Python不合适?是因为http://legacy.python.org/dev/peps/pep-0394/吗? - Dmitry Grigoryevsudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
- David Baucumpython2 --help
和python3 --help
,你会发现它们具有相同的功能。update-alternatives也可以用来在php cli版本之间切换,所以在Python版本之间进行切换也是可行的。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 30; sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 20
- pmiguelpintocd ~
gedit .bash_aliases
alias python=python3
alias python='/usr/bin/python3'
我发现简单地移除 /usr/bin/python 和 /usr/bin/pip 非常有帮助。这会强制所有程序依赖于 "python2" 和 "python3" 命令。
尽管一些可选的、过时的软件包依赖于 #!/usr/bin/python
来工作,但我宁愿向这些程序提交补丁,而不是继续犯下奇怪且有时难以调试的错误。
cat > /usr/local/bin/py << 'EOF'
#!/bin/dash
python3 "$@"
EOF
cat > /usr/local/bin/pyi << 'EOF'
#!/bin/dash
python3 -i "$@"
EOF
sudo ln -s /usr/bin/python3 /usr/local/bin/py
- wjandreapyi
,当你可以将 -i
作为选项传递给 py
呢? - wjandrea
alias python='echo Python2 is too old. Please run python3'
添加到你的.bashrc文件中。 - user334639