如何使’python’程序命令执行Python 3?
python
程序命令执行Python 2.可以使用python3
命令执行Python 3。 如何使用python
命令执行Python 3?
一种简单安全的方法是使用别名。 将其放入~/.bashrc
或~/.bash_aliases
文件中:
alias python=python3
在文件中添加上述内容后,运行以下命令:
source ~/.bash_aliases or source ~/.bashrc
例如:
$ 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
要在当前shell中禁用别名,请使用unalias
内置命令:
$ unalias python $ python --version Python 2.7.6
[2016年6月]有关转换信息的推荐位置是官方Ubuntu Python页面。
来自Ubuntu wiki :
对于Ubuntu和Debian,我们都有持续的项目目标 ,使Python 3成为发行版中的默认首选Python版本。
这不意味着什么:
/usr/bin/python
将指向Python 3. 不,这不会发生 (除非PEP 394另有提倡,否则在可预见的未来是值得怀疑的)。/usr/bin/python
和/usr/bin/python2
将指向Python 2.7,而/usr/bin/python3
将指向最新支持的Python 3版本。Python 2将从存档中删除。 不,这不会发生 。 考虑到PEP 373承诺上游错误修复维护支持到2020年,我们希望Python 2.7在Ubuntu中保持支持并可用相当长的时间。
由于其他软件包依赖性,不建议更改符号链接,但它们“具有持续的项目目标,以使Python 3成为发行版中的默认,首选Python版本”。
对于CLI使用,比如@RaduRădeanu ,我建议在用户的~/.bashrc
, .bash_aliases
文件中添加一个别名(不同的文件,包括~/.bash_profile
,至少加载一次,主要用于组织目的,但是可能因平台而异)。 Python 虚拟环境也运行良好。
别名示例:
alias python=python3
要么
alias python='/usr/bin/python3'
脚本应该仍然使用#!/usr/bin/env python3
来实现交叉兼容性。
使用env
非常适合与虚拟环境混合使用。
注意(感谢@wjandrea):别名是bash运行时的一部分,而不是用户环境。 因此,它们不适用于shebang( #!
)。 如果你更喜欢别名python = python3,那么一些没有shebang的program.py
可以通过调用这个python program.py
类的别名解释器来执行。 别名对于具有多个版本的python3(如3.4和3.6)的系统也可能很有用。
更新:这是错误的方法,我已经了解,因为Python2和Python3不可互换。
您可以尝试使用命令行工具update-alternatives
。
$ sudo update-alternatives --config python
如果您收到错误“无法替代python”,请使用以下命令自行设置替代方法:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
相应地将路径/usr/bin/python3
更改为所需的python版本。
Ubuntu以及其他Linux发行版仍然在很大程度上依赖于Python 2.7来实现许多应用程序和命令。 如果将“python”的默认引用更改为Python 3.x,那么许多Python函数将开始抛出断言错误。
例如,在Ubuntu上,除非你直接编辑文件并将shebang更改为引用’#!/ usr / bin / env python2.7’,否则’pip’将不再正常运行。 在RHEL(Red Hat Enterprise Linux)版本中,如Red Hat,Fedora和CentOS,’Yum’命令也依赖于Python 2.7。
我的观点是,您将导致大量代码开始抛出断言错误,因此您可以在终端中键入’python’以引用Python 3.x.
你最好在终端中使用’python3’命令,在Python 3.x文件中使用shebang’#!/ usr / bin / env python3’。
做
cd ~ gedit .bash_aliases
然后写任何一个
alias python=python3
要么
alias python='/usr/bin/python3'
保存文件,关闭终端并再次打开。
链接
您可以使用update-alternatives
来提供由于兼容性问题而在不同时间可能需要的不同版本的程序。
例如, 这个答案是如何设置同时维护不同版本的gcc / g ++的一个很好的例子。
用python2.7和python 3.3做同样的事情
cat > /usr/local/bin/py #!/usr/bin/dash python3 "$@"
(同样,如果您对/ usr / local / bin有写入权限)
cat > /usr/local/bin/pyi #!/usr/bin/dash python3 -i "$@"
然后你只为你选择的python输入py(并在#!行中使用py)。
您可以使用符号链接/usr/bin/python
到python3
sudo ln -s /usr/bin/python3 /usr/bin/python
请参阅其他答案,了解为什么您可能不想这样做。 Ubuntu 18.04不再附带Python 2,所以它不应该太糟糕。
- 如何降级Python或使用多个版本?
- 我想在我的Ubuntu 16.04系统中为python 2安装selenium webdriver
- Nvidia X服务器 – 由于python导入错误,无法从我的英特尔切换到GPU
- UTF-8 Telugu文本在终端中无法正确呈现
- 为什么/ dev / rfcomm0会出现PySerial问题?
- 如何安全地安装较旧/较新版本的Python?
- sudo apt-get install python-pip失败了
- 在简单播放器快速教程中遇到“gtk.RESPONSE_OK”的问题
- 如何让Ubuntu使用Anaconda的python而不是标准的/ usr / lib / python ……?