MacOSでPython3をセットアップするための正しい方法と間違った方法
私はPyCon USに向かう準備ができているので、つま先をPython開発に戻しました。 (あなたもそこに向かっていて、あなたのPythonの話を共有したい場合は、私に知らせてください! 時にインストールして使っているモジュールのティンカー世話になったことを改めて認識するためのイPython3。
$ pip install todoist-python
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won"t be maintained after that date. A future version of pip will drop support for Python 2.7.
だから、私たちの誰かがやることをして、Mac(macOSオペレーティングシステム、以前はOS Xとして知られていた)で動作する開発環境を更新するためのガイドを探してグーグルで検索しました。, 驚いたことに、私はstackoverflowの投稿のほんの一握りを見つけました、そして彼らは私に部分的な解決策を指摘しました。 ここでは、macOSのオペレーティングシステムに組み込まれたものを壊すことなく、環境を設定する方法の完全な話です。
1. Install pyenv
Moshe Zadkaは、これを間違って行うと、Pythonが実行されているという信頼できないアイデアが生じる可能性があり、エイリアスをロードするシェルに 私はMosheがPythonに精通していることを知っていましたが、私が知らなかったのは、彼が多くのPythonチュートリアルの著者であり、macOSでのPython開発に関する今後の本, 彼は40人の同僚がmacOSシステム上で安全かつ一貫してPythonを開発するのを助けました。
“すべてのPython開発の基本的な前提は、システムPythonを使わないことです。 Mac OS Xの”デフォルトのPython”を”python3″にしたくありません。”デフォルトのPythonを気にしないでください。”
デフォルトを気にするのをやめるにはどうすればよいですか? Mosheはpyenvを使用してPython環境を管理することを推奨しています(pyenvの設定について詳しくは、この記事を参照してください)。, このツールは複数のバージョンのPythonを管理し、”単純で控えめで、一つのことをうまく行う単一目的ツールのUnixの伝統に従っています。”
他のインストールオプションが利用可能ですが、始める最も簡単な方法はHomebrewです:
$ brew install pyenv
🍺 /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
Pythonをインストールします
最新のPythonバージョン(3.7。,3この記事を書いている時点で):
グローバルデフォルトを設定します
Python3がpyenvを介してインストールされたので、pyenv環境のグローバルデフォルトバージョンとして設定します。
$ pyenv global 3.7.3
# and verify it worked
$ pyenv version
3.7.3 (set by /Users/mbbroberg/.pyenv/version)
pyenvのパワーは、シェルのパスを制御することによって得られます。 それが正しく動作するためには、設定ファイルに以下を追加する必要があります(。私のためにzshrc、おそらく。あなたのためのbash_profile):
そのコマンドの後、私たちのドットファイル(。zshのためのzshrcまたは.,これらの行を含める必要があります:
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
今、私たちはPython3.7.3を使用していることを確かに知っています。pipはバージョン間の手動エイリアスなしでそれと一緒に更新されます。 Mosheの推奨事項を使用してバージョンマネージャ(pyenv)を使用することで、特定の時点でどのPythonを実行しているかを混乱させることなく、将来のアップグレードを
Success
このワークフローに慣れると、pyenvを使用して複数のバージョンのPythonを管理できます。 また、依存関係管理のためには、仮想環境を使用することも不可欠です。, この記事では、組み込みのvenvライブラリの使用方法について言及しており、Mosheは仮想環境を管理するためにvirtualenvwrapperを推奨しています。
Pythonランタイムの理解
Pythonのバージョンが修正されたので、この問題が非常に多くの人々を混乱させる理由を探ることは安全です。
macOSに同梱されているPythonのバージョンは、Pythonが開発に使用することを推奨しているものとはかなり古くなっています。 考えPythonランタイムでcomically難易度の高い仕事で指摘されたように、XKCD.,
多くのユーザー数十人のPythonの通訳者をコンピュータがない方はアイデアを管理しています。 あまりにも頻繁に、人々は最新のPythonリリースをダウンロードし、それを自分のパスに移動し、それを一日呼び出します(またはbrew install python3を使用します)。 これにより修理しにくい場合もある失望の方法でラインの下の破損を引き起こすことができます。,
しないこと
私のシステムでPython3をデフォルトのPythonにする方法についての私の最初のアイデアは、古いバージョンを移動して新しいバージョンを追加することでした。
パターンは/usr/bin/がPythonのメジャーリリース間で通常行うことに従っていましたが、間違った動きであることをすぐに知りました。
$ sudo mv /usr/bin/python /usr/bin/python2
mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
ありがたいことに、macOSは私が完全に理解していないものを壊すことから私を保護しました。 さらなる研究こそが、いよいと思います。
試してはいけないもう一つのこと
何をしてはいけないのか分かったので、できることを見てみましょう。, あるカップルにオプションということを考えた場合には共通の設置パターンのためのmacOS.
macOSのデフォルトとしてPython3を使用します
Pythonのウェブサイトには、ダウンロードして使用できるmacOS Python3インストーラがあります。 パッケージのインストールを使用する場合、python3の塗りつぶしは/usr/local/bin/で利用できるようになります。
エイリアシングは、/usr/bin/に格納されているPythonバイナリを変更できないため、必須です。 エイリアスのいいところは、コマンドラインシェルに固有のものだということです。 私はデフォルトでzshを使用しているので、私は次のことを入れました。,zshrcファイル:
デフォルトのBashシェルを使用している場合は、この同じテキストをあなたに追加できます。bashrc:
この戦略は機能しますが、将来のPythonのアップデートには理想的ではありません。 これまうひとつ忘れてはいけない、ホームページでチェックし、ダウンロードし、新しいファイルはPythonが”tなどのコマンドライン方法を更新してしまいました。
Homebrewにpython3を管理させる
Homebrewプロジェクトは、多くの人々が依存しているmacOS用のフリーでオープンソースのパッケージマネージャを提供します。 これは、appleユーザーにapt-getまたはyumと同様のパワーを与えます。, Homebrewユーザーの場合は、すでにPythonがインストールされている可能性があります。 すばやく確認するには、次のように実行します。
$ brew list | grep python
python
Pythonがコマンドの下に表示された場合、インストールされます。 どんなバージョンですか? “のチェックをしてみましょう:
さて、素晴らしいです! Homebrewのメンテナは、最新のリリースを指すようにデフォルトのPythonボトルを更新しました。, Homebrewのメンテナは私たちのほとんどよりもリリースの更新に信頼できるので、HomebrewのバージョンのPython3を次のコマンドで使用できます。
次に、Homebrewが管理するPythonのコピーを(上から)エイリアスを指したいと思います。
# If you added the previous alias, use a text editor to update the line to the following
alias python=/usr/local/bin/python3
上記のパスがHomebrewがPythonをインストールした場所を指していることを確認します。私たちの環境では、brew info pythonを実行してパス情報を探すことができます。,
Homebrewを使用してPython環境を管理するこの方法は、良い出発点であり、当時の私にとっては理にかなっていました。
まだPython2が必要な場合はどうすればよいですか?
Pythonを初めて使用する人にとっては、Python3から始めるのが理にかなっています。, しかし、まだPython2を必要とする私たちの人たち—例えば、Python2でしか利用できないPythonプロジェクトに貢献するために—/usr/bin/pythonで利用可能なデフォルトのmacOS Pythonバイナリを使用し続けることができます:
$ /usr/bin/python
>>> print("This runtime still works!")
This runtime still works!
Homebrewはとても素晴らしいです、それはPython2のための別の式を提供します:
# If you need Homebrew"s Python 2.7 run
$ brew install python@2
いつでも、私たちは私たちのエイリアスを削除することができます。シェルの設定ファイルは、システム上のpythonのデフォルトのコピーを使用することに戻ります。
pipをpip3に更新するのを忘れないでください!,
pipコマンドは、Pythonパッケージ専用のデフォルトのパッケージマネージャです。 デフォルトのPythonコマンドをバージョン3に変更しましたが、以前のバージョンであれば、pipコマンドを別々にエイリアスする必要があります。 まず、どのバージョンを使用しているかを確認する必要があります。
新しいバージョンのPythonと互換性のあるパッケージをインストールするには、pipの互換性のあるバージョンを指すために別のエイリアスを使用します。 以来、”再利用の自作として当社のパッケージマネージャーはこの状況について知っていますpip3を設置時に設置しましたPython3., デフォルトのパスはPython3と同じですが、シェルに見つけるように求めることで確認できます。
$ which pip3
/usr/local/bin/pip3
場所がわかったので、前と同じようにシェル設定ファイルに追加します。
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
# or for Bash
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
最後に、新しいシェルを開くか、現在のシェルをリセットして、シェルがpip3を指していることを確認することができます。ポイント:
# This command reloads the current shell without exiting the session
# Alternatively, exit the shell and start a new one
$ exec $0
# Now we can look to see where pip points us
$ which pip
pip: aliased to /usr/local/bin/pip3
homebrewを使用してpipを更新することは避けることができますが、pythonのドキュメントからはるかに長いチュートリアル,
最初からすぐに行う
macOSでPython開発を始めたばかりの場合は、最初から正しいバージョンのPythonを使用していることを確認するために必要な Homebrewの有無にかかわらず、Python3をインストールし、aliasを使用すると、コーディングを開始できますが、長期的には良い戦略ではありません。 Pyenvをシンプルなバージョン管理ソリューションとして使用して、良いスタートを切ります。
この記事は、もともと月に公開されました2019そして編集者によって更新されました.