繁体   English   中英

Bash 别名 --> Python 2.7 到 Python 3.3

[英]Bash alias --> Python 2.7 to Python 3.3

我正在尝试将 Python 3.4.2 设为 Linux 中的默认值(目前为 2.7.6)。 我对这些东西不是很了解,但是我在网上的几个地方读到,你可以简单地在~/.bashrc~/.bash_aliases文件中放置一个别名,如下所示:

alias python='python3'

我没有~/.bashrc~/.bash_aliases文件。 . . 我假设您可以创建它们。 我已经这样做了,但别名似乎不起作用。 我错过了什么吗? 你需要文件开头的shebang吗? 我已经尝试了两种方法。

谢谢你提供的所有帮助!

不要这样做!

一些 linux 实用程序目前依赖于python2.x 如果您进行更改,它可能会破坏您的系统,因为python3.xpython2.x不向后兼容。 除非你完全意识到后果,否则不要这样做!

类似的问题在这里问: https : //askubuntu.com/questions/103469/how-do-i-change-my-pythonpath-to-make-3-2-my-default-python-instead-of-2- 7-2

在 bash 文件中,以下内容不起作用:

别名 python='python3'

别名语法在 bash/sh 脚本执行中不可用。 为了使用在 python 和 python3 上都可以使用的 bash 执行 python 命令。 我编写了一个函数来检查 python3 或 python 是否可用,然后将函数参数传递给 python 的本地安装。

示例代码取自在有时没有 python 但安装了 python3 的机器上运行的脚本。

此代码在 Ubuntu 18 和 16(Windows 子系统 Linux 2)上进行了测试。

#!/bin/bash
function local_python() {
  _python=$(which python)
  _python3=$(which python3)
  python=${_python3:-_python}

  echo $($python -c "$1")
}

curl "http://www.geoplugin.net/json.gp" \
  -X GET \
  -H "Accept: application/json" |
  local_python "import sys, json; print(json.loads(sys.stdin.read())['geoplugin_request'])"

可以将上述代码复制并粘贴到 example.sh 文件中,并且应该(只要 url 可用)返回您的 IP 地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM