デフォルトのpythonバージョンを変更する方法


105

MacにPython 3.2をインストールしました。/ Applications / Python 3.2 / Update Shell Profile.commandを実行した後、ターミナルでpython -Vと入力すると、Python 2.6.1と表示されて混乱するのですが、どうすればデフォルトのpythonバージョンを変更できますか?



を使用した優れたソリューションについては、opensource.com / article / 19/5 / python-3-default-macを参照してくださいpyenv
Thomas Ahle

回答:


114

これはおそらく、下位互換性のために望ましいものです。

Python3は後方互換性を壊し、 'python'を呼び出すプログラムはおそらくpython2を期待します。おそらく気づいていない多くのプログラムとスクリプトがあり、それらはpython = python2を想定しているため、これを変更すると、それらのプログラムとスクリプトが破損します。

あなたがおそらく探している答えは、これを変更してはならないことですです。

ただし、シェルでカスタムエイリアスを作成することもできます。その方法はシェルによって異なりますが、おそらくあなたはそうすることができますalias py=python3

最新バージョンのpythonを開始する方法について混乱している場合、(上記の互換性の理由により)少なくともLinuxの場合はインストールがそのまま残りpython3ます。したがって、コマンドでpython3を起動できます。python2python3


36
これは役立つ情報ですが、質問は「デフォルトのpythonバージョンを変更するにはどうすればよいですか」でした。それをしようとしている人々を助けるために何かを追加できますか?
dmeyerson 2016

MacでPython3をインストールしても、Python2はそのまま残ります。しかし、「python」と入力したときに実行されるデフォルトを変更する方法があるように思えます。私は一度オプションに出くわしました。「python --version」が2.7.12を示し、「python3 --version」が3.7.0を示す場合は、そのままにすることを選択しました。問題はそれをどのように変更するかであるという上記のdmeyersonに同意する。あなたのアドバイスは良いですが、必要な場合(または本当にしたい場合)に変更する方法があります。
リッチサドウスキー、2018

3
>おそらくあなたが探している答えは、これを変更すべきではないということです。そして、ここでそれは「これをどのように変更するか」だと思いました!
デュアン

2
この答えは正しいです。システムレベルで何をpython指しているかを変更しないでください。変更すると、OSの重要なコンポーネントが破損する可能性があります。代わりに、別個のPython 3インストールと仮想化を使用して、「ローカル」のデフォルトPythonを自分に与えます。
Martijn Pieters

50

Python 3の場所を確認する

$ which python3
/usr/local/bin/python3

bash_profileにエイリアスを書き込みます

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

bash_profileをリロードします

source ~/.bash_profile

Pythonコマンドを確認する

$ python --version
Python 3.6.5

2
これは悪い解決策です。受け入れられた回答で述べられているように、$ pythonpython 2用に予約されています。コンピューターで実行するpython 2を期待するプログラムはすべて、エイリアスが原因でpython 3を受け取ります。これにより、予期しない悪影響が生じる可能性があります。
上人

Appleの意図はこの問題とは無関係である。
duane

45

Mac OS Xでは、どうやらpython.orgインストーラーを使用しているため、Python 3をpython3でなくで起動する必要がありますpython。現在、Python 2バージョン用に予約されています。を使用python3.2して、そのバージョンを具体的に呼び出すこともできます。

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

python.orgからPython 2もインストールした場合は、似たフレームワークbinディレクトリがあり、ファイル名が重複していません(2to3を除く)。

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*

「現在Python 2バージョン用に予約されています」に関して、そのリンクはありますか?
ワイルドカード

私がpython 3.4とpython 3.7を持っている場合、ターミナルからpython3を入力すると、3.7ではなくpython 3.4が実行されます。これを修正するにはどうすればよいですか?
Ysh


19

正しいことをしてください、正しいことをしてください!

--->ゼロターミナルを開き、

-最初に入力python -V、それはおそらく示しています:

Python 2.7.10

-2回目に入力python3 -V、それはおそらく示しています:

Python 3.7.2

-3番目に入力where pythonまたはwhich python、それはおそらく示します:

/usr/bin/python

--- 4番目の入力where python3またはwhich python3、それはおそらく示しています:

/usr/local/bin/python3

--Bash ~/.profile file or ~/.bash_profileまたは~/.zshrczshの下のPATH環境変数ファイルの最後に次の行を追加します。

alias python='/usr/local/bin/python3'

または

alias python=python3

-Bashでの6番目の入力source ~/.bash_profileまたはsource ~/.zshrc zsh。

--7番目に、ターミナルを終了します。

--- 8番目に端末を開いて入力しpython -Vます。

Python 3.7.2

私はそれをうまく試しました。

その他、~/.bash_profilezsh の下はそれではありません~/.bash_profile

代わりにzshの下のPATH環境変数~/.profile(または~/.bash_file~/.zshrc

みんな助けて!


16

パスのシステムPythonの前に置くことにより、「デフォルト」のPythonを変更します。たとえば、次のようにします。

export PATH=/usr/local/bin:$PATH

私の想定では、これを行うことでMacで何かを壊すことができると思います。「python」エイリアスを使用する多くのプログラムとスクリプトがあるので。突然、PATHの優先順位が変更されたために、Python2ではなくPython3を指すようになり、何かが壊れる可能性があります。潜在的にOS全体...それは私の仮定ですが、テストされていません。
アイボリック、2015

3
すべてのシステムソフトウェアは、システムが提供するPythonへのフルパスを使用します。
Adam Vandenberg

2

Googleのクイック検索によると、このアップデートは現在開いているシェルにのみ適用されます。macとlinuxはこのようなことが一致するのに十分似ているため、おそらくpython3と入力することで修正できます。グーグル検索の結果へのリンク。

また、ninjageckoが述べたように、ほとんどのプログラムはまだ3.xに更新されていないため、デフォルトのpythonを3.xにすると、アプリケーションで使用される多くのpythonスクリプトが壊れます。


2

OS X 10.7.5とPython 3.4.2を使用しています。入力python3して実行したいものを入力すると、Python 3を使用して実行され pyhton3 test001.pyます。それが私が作成したtest001というテストプログラムを実行しました。これがお役に立てば幸いです。


5
Stack Overflowへようこそ!あなたの答えは、尋ねられた質問に対する実際の答えではないようです。修正したい場合は、stackoverflow.com / help / how- to -answerを参照してください。
その他

私はHOURSをpython3を私のMacで動作させるために費やしました-古い 'python'の代わりに 'python3'とタイプすることが判明しました。
YCode、2017

1

案内する:

マイコンピュータ->プロパティ->詳細設定->環境変数->システム変数

パス変数にすでにpython 2.7が追加されていて、デフォルトパスをpython 3.xに変更したいとします。

次に、python2.7パスの前にpython3.5.xフォルダのパスを追加します。

コマンドを開く:「python --version」と入力します

pythonバージョンはpython 3.5.xに変更されます


3
それがWindowsです。
チャールズロス2018年

一部のIDEには、ターミナル/コマンド/コンソールが含まれており、環境変数を伝達します。IDEを再起動して、embeddターミナル内の変更を取得します。
UselesssCat

0
sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

これはスクリプトを壊しますが、まさにPythonを変更する方法です。また、スクリプトpythonが2.xであると想定しないように書き直す必要があります。これは、systemまたはを呼び出す場所に関係なく機能しますexec


0

つまり、環境変数のパスを変更します。

Windowsの場合:

  • 高度なSystem Settings > Advance (tab)。下にあります'Environment Variables'

  • をダブルクリックしますPath。Pythonインストールの1つへのパスが表示されるので、それを目的のバージョンのパスに変更します。


0

ライブラリがあるpython3の実行パスを確認する

$ which python3
/usr/local/bin/python3  some OS might have /usr/bin/python3

bash_profileファイルを開いてエイリアスを追加する

vi ~/.bash_profile  
alias python='/usr/local/bin/python3' or alias python='/usr/bin/python3'

変更を有効にするためにbash_profileを再ロードします

source ~/.bash_profile

pythonコマンドを実行し、それがpython3でロードされているかどうかを確認します

$ python --version
Python 3.6.5
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.