Ubuntu 16.04 LTSを使用しています。 python3
をインストールしました。 python 3.4.3
とpython 3.6
の2つのバージョンがインストールされています。 python3
コマンドを使用すると、デフォルトでpython 3.4.3
がかかります。 python 3.6
とpython3
を併用したい。
python3 --version
はversion 3.4.3
を表示します
version > 3.5
をサポートするansible
をインストールしています。したがって、ターミナルでansibleと入力すると、python 3.4
が原因でエラーがスローされます
コメントから:
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 --version
Sudo su
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
python --version
これらのコマンドを使用すると、次のことができます。
ls /usr/bin/python*
alias python='/usr/bin/pythonxx'
(これを. ~/.bashrc
に追加). ~/.bashrc
python --version
/ 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
簡単な答えは、python3.6のエイリアスを追加することです。
この行を〜/ .bashrc:alias python3="python3.6"
ファイルに追加し、ターミナルを閉じて新しいターミナルを開きます。 python3 xxx
と入力すると、python3.6 xxx
に変換されます。
このソリューションは、システムを過度に調整する必要なく、問題を修正します。
EDIT:
MikaelKjær が指摘したように、これはシステムでのansibleの設定ミスです。
見たとおり here:
ansible_python_interpreter
構成オプションを/ 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
見たとおり here 設定ファイルについて:
変更を加えて、次の順序で処理される構成ファイルで使用できます。
* ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg
システムに複数のバージョンの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 symlinkを以下のコマンドを使用して更新します-
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
最初のチェックはあなたのpython3.6フォルダを行います
ls /usr/bin/python3.6
python3.6のようなフォルダがあれば
それからupdate-alternatives
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
python3の新しい設定を更新する
Sudo update-alternatives --config python3
チェックpythonバージョン
python3 --version
端末を開いて次のように入力します:gedit ~/.bashrc
と次の行を追加します。
alias python=python3.x
ここで、xはあなたのpythonバージョンです。
ハッピーコーディング。
シンボリックリンクはln -sf python3.6 python3
内の/usr/bin
で変更できます。これにより、python3
を呼び出すと、python3.6
が実行されます
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バージョンを個別に制御できます。