10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゼロから始める Python 爆速環境構築(Mac)

Posted at
  • Python の環境構築は色々バリエーションがあって分かりづらいですが、今現在最も良いと感じている方法を提示します
  • 具体的には pyenv + Poetry

Pyenv

brew install pyenv

でインストール。

まず環境変数の設定をします。
パス $HOME/.pyenv として PYENV_ROOT を登録し、$PYENV_ROOT/binPATH に含め、シェル起動時に pyenv init させます。

例えば bash であれば

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
exec "$SHELL"

となります。他のシェルの場合などはドキュメントを確認してください。

準備が整ったので、お好みのバージョンの Python を入れましょう。

pyenv install 3.7.2
pyenv global 3.7.2

これで Python v3.7.2 が使えるようになりました。python --version と入力して Python 3.7.2 と出力されることを確認しましょう。

Poetry

Poetry は新進気鋭のパッケージ管理ツールです。
類似品として Pipenv がありますが、Pipenv に比べて断然速いのと、Pipenv は現在更新が滞ってしまっていることから、もし今から新しく Python を始めようという方であれば Poetry を使うべきです。

インストールは

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

で完了します。

一つだけやっておくべき設定があります。それは

poetry config virtualenvs.in-project true

です。これで、.venv ディレクトリをローカル(pyproject.tomlと同じ階層)で作ってくれるようになるので、VSCode や IDE 等でディレクトリを開いた時に、自動で仮想環境を認識してくれるようになります。

では、試しに動かしてみましょう。サンプルディレクトリを用意します。

mkdir example
cd example

poetry init をすると、対話形式で pyproject.toml に書く内容を決めていきます。Node.js ユーザーであれば npm init などでお馴染みだと思います。

面白いのは、この時点で既に入れたい依存パッケージが決まっている場合は Would you like to define your main dependencies interactively?yes と答えると順次モジュールを指定して入れていくことができる点です。
もちろん後で依存パッケージを入れることもできるのでご安心を。

対話が終了すると pyproject.toml が書き出されます。

それではプログラムを書いていきましょう。爆速つながりで、阿部 寛のホームページをスクレイピングしてみます。
まず、Python のスクレイピングではおなじみの requests を入れます。

poetry add requests

これで requests が入ると同時に、ディレクトリ内に .venv ディレクトリが新しく作られると思います。
ちなみにこの状態で VSCode でディレクトリを開くと左下に Python 3.7.2 64-bit ('.venv': venv) みたいな表示が出て、ローカルの仮想環境を認識してくれているのが分かります。

そうしたら、スクレイピングするプログラムを書きます。

abe.py
import requests

r = requests.get("http://abehiroshi.la.coocan.jp/")
print(r.text)

動かしてみましょう。
VSCode は賢いので、VSCode 内でターミナルを開くとシェルが自動で仮想環境に入ってくれます。なので普通に

python abe.py

だけでOKです。

もし、VSCode 内ではなくコンソールなどでコマンドを打ちたいのであれば

poetry run python abe.py

または

poetry shell
python abe.py

となります。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?