17
34

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 5 years have passed since last update.

[覚え書き] Pythonの環境構築について

Last updated at Posted at 2018-01-19

2018年1月時点での、Pythonの環境構築(インストール、パッケージ管理、仮想環境)についての簡単な覚え書きです。何か間違っているところがあったらお知らせください。

  • Pythonには2系と3系があり、互換性がありません。2系はバージョン2.7で打ち止めとなっていて、2020年でサポートが打ち切られます。

Pythonのインストール

そもそも各OSのパッケージ管理ソフトについて

  • Linuxでは、UbuntuなどDebian系ではapt、CentOSなどRedHat系ではyum。yumはそのうちdnfとかいうのに移行するそうだ
  • macOSではMacportsとHomebrewがあるけど、Homebrewのほうが流行っているのでHomebrewを使っておけば間違いなさそう
  • WindowsにもChocolateyというパッケージ管理ソフトを導入できる。関係ないけど、最近のWindowsはコマンドプロンプトではなくPowerShellとかいうのを使うそうだ

各OSのパッケージ管理を使ったインストール

基本的に、「Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01」 に従えば良さそう。

  • Unix系OS(macOS含む)では、システムで使うためにだいたいPython 2が/usr/bin/pythonとしてプリインストールされてる。これはシステムで使われているので、いじると大変なことになる。あと、バージョンが古い(2系の最新は2018年1月現在2.7.14)
  • macOSでは、2系がbrew install pythonで入り、3系がbrew install python3で入る。それぞれpython2pip2python3pip3で使える
  • CentOS7では、yum install https://centos7.iuscommunity.org/ius-release.rpmでリポジトリを追加してから、yum install python36u python36u-pip python36u-devel (数字36はPython 3.6の意味)で入る。python3.6, pip3.6で使える。develも入れておくと、jupyterでpython 2と3を共存させようとしたときに役立つ
  • Windowsでは、choco install pythonで3系の最新が入る。けれど、文字コードか何かの問題でpipが動かなかったりjupyterが起動しなかったりしたので、Windowsは諦めた。VirtualBoxでUbuntuなりCentOSなりを入れよう・・・ 。筆者の環境ではどれもうまくいかなかったけど、以下のような対策がある

Pythonのパッケージ管理

公式のpipを使うのが無難。2系は2.7.9、3系は3.4から標準でPython本体に付属するようになった。

  • CentOS7では、2系に対しては、yum install epel-releaseでリポジトリを追加してから、yum install python-pipで入る

使い方

  • pip install {package} パッケージのインストール
    • pip install {package}=={version} 指定したバージョンのパッケージをインストール
    • pip install -U {package} パッケージのアップデート。pip自身に対してもできる
    • pip uninstall {package} パッケージのアンインストール
  • pip freeze インストールされたパッケージの一覧
    • pip freeze > requirements.txtとして出力しておけば、pip install -r requirements.txtでその一覧をインストールできる
  • pip show {package} あるパッケージについて詳しく見る

入れておくとよいパッケージ

  • jupyter, jupyterlab インタラクティブコーディング環境
  • scipy 科学計算。numpyも自動で入る
  • pandas データ分析
  • matplotlib グラフを描く
  • scikit-learn 機械学習
  • flake8 コードをチェックする。以下の3つのラッパ
    • pyflakes 文法や不要な部分のチェック
    • pycodestyle(旧名pep8) Pythonのコーディング規約PEP8を守っているかチェック
    • mccabe プログラムの複雑さをチェック

conda系について

データ分析ではAnacondaやMinicondaといったconda系ディストリビューションに含まれるパッケージ管理機能も便利だけれど、公式で決められたwhl形式ではない独自の形式を使っていることについて議論になっているように見える。他にも、bashが前提になっててzshだと困るなどの副作用があるようだ。

仮想環境

Pythonに入れておくパッケージのセットを、状況に応じて好きに切り替えられるようにする機能。公式のvenvを使うのが無難っぽい。これは、virtualenvというやつがPython 3.3から公式に取り込まれたもの。pyvenvコマンドで呼び出す方法は非推奨になった。代わりに、venvコマンドを使う。

  • python -m venv {dir} 仮想環境ディレクトリを作る
    • オプション-mは、ライブラリモジュールをスクリプトとして実行する
    • ディレクトリがなければ作ってくれる
    • 2系にはvenvが無いので、pip install virtualenvしてvirtualenv {dir}を代わりに使う
  • source {dir}/bin/activate その仮想環境を有効化する。プロンプトに仮想環境名が表示されるようになる。一時的に環境変数$PATHに{dir}/binが一番左(一番優先順位が高い)に追加され、python, pipコマンドでその仮想環境のpython, pipを実行するようになる
    • Windowsでは、{dir}\Scripts\activate.bat
    • bashで書かれているので、fishシェルでは代わりにsource {dir}/bin/activate.fishとする
    • source.でもいい
  • deactivate 仮想環境を無効化する

pyenvというのもあるけれど、これが本当に必要な人は限られてるっぽい。

17
34
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
17
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?