簡體   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