TIS ENGINEER NOTE

ITエンジニアのためのキャリア向上ノウハウブログ

プログラミング

Pythonの開発環境構築

更新日:

今回はPythonで使いやすく、整理された開発環境を構築する手順を紹介していこうと思います。

目標としては、

  • 複数のバージョンを使い分けることができる
  • プロジェクトごとにパッケージをインストールできる

という状況に持っていけるようになること。

Ruby勉強中でもあるので、Rubyの開発環境を作成するときと比較しながら進めていきます。

利用するツール

pyenv

複数バージョンのPythonを管理・切り替えするためのツールです。

名前の通り、rbenvのPython版といったイメージで問題ありません。実際に使用するコマンドや設定方法もrbenvと酷似しています。

virtualenv

Pythonの仮想実行環境を管理するためのツール。開発しているアプリケーションディレクトリごとに仮想環境を構築することができます。細かい仕組みは異なりますが、Railsを開発するときにvendor/bundleにgemを管理する感覚に近いと考え、このvirtualenvをチョイスしました。

 

Pythonはバージョン管理、パッケージ管理の手法がいくつも存在していて、スタンダードらしいスタンダードが存在していない状況ですが、できる限り、rbenv/bundlerと近い感覚で管理できるよう、この2つのツールを選定しました。

pyenv

インストール

まずは複数のバージョンのPythonを切り替えることができるよう、pyenvのインストールとバージョンの指定を行います。

brew install pyenv

Macであれば上記のコマンド一発でpyenvをインストールすることが可能です。

環境変数の設定

しかしpyenvをインストールしたけでは、pythonコマンドなどを実行したときに使用されるのは、元からPCにインストールされているpythonのままです。

そこで、利用するPythonをpyenvにインストールしたPythonに設定するために以下のコマンドを実行し、環境変数の定義、シェルの再起動を行います。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
exec "$SHELL"

使用するバージョンのインストール・選択

次にインストールできるPythonのバージョンの一覧を取得しましょう。

pyenv install --list

ずらっとPythonのバージョンが表示されますので、その中から使用したいバージョンをメモしておきます。

今回は3.6.2をインストールしてみます。

pyenv install 3.6.2
pyenv global 3.6.2
pyenv rehash

上記のコマンドでそれぞれ、使用したいバージョンのインストール/選択/適用が完了したことなります。

確認作業

ここまでの作業が完了したら念のため、

  • python -Vでglobalに設定したバージョンが表示されること
  • which pythonで表示されるパスがpyenv配下となっていること

をそれぞれ確認しておきましょう。

 

virtualenv

次にpythonの仮想開発環境を構築するためにvirtualenvのインストールを行います。

仮想環境といってもそこまで大仰なものではなく、パッケージのインストール先をプロジェクト配下にまとめておくくらいのイメージです。

インストール

早速以下のコマンドでPCにvirtualenvをインストール。pipはRubyでいうGemのようなもので、Pythonのパッケージを管理してくれるツールです。

pip install virtualenv

インストールが完了したら、pip listで現在インストールされているパッケージをpip listで確認してみましょう。virtualenvが追加されているはずです。

仮想環境の作成

今回はPythonの軽量Webフレームワークであるflaskのプロジェクトを作成するケースで手順を紹介していきます。Djangoであったり、その他フレームワークでも基本は変わりません。

まずはディレクトリの作成と移動。このディレクトリ内で開発を行っていきます。

mkdir flask-sample
cd flask-sample/

この作成したディレクトリ配下にPythonの仮想環境を作成します。

virtualenv flask-sample-virtual

仮想環境の有効化

そうすると現在のディレクトリ内に、仮想環境用のディレクトリが作成されますので、以下のコマンドで有効化します。

source flask-sample-virtual/bin/activate

そうするとターミナルの入力行の先頭に(flask-sample-virtual)という表示がされます。

この(flask-sample-virtual)が表示されている間は、flask-sample-virtualにインストールされたPythonパッケージがインストールされる、ということになります。

パッケージのインストール

ではflaskをインストールしてみます。

pip install flask

特にコマンドに特別なオプションは不要です。気をつけるべきは(flask-sample-virtual)という表示が入力行の先頭に存在しているか、のみです。

flaskと依存パッケージが仮想環境配下にインストールされているかを、再度listで確認してみましょう。

pip list

仮想環境の終了

以下のコマンドで有効化していた仮想環境を終了することができます。

deactivate

そしてもう一度pip listを。

pip list

仮想環境を抜けるとflaskで追加されたライブラリがなくなっていることが確認できますね。

ここまで確認できれば、virtualenvが問題なく導入できたことになります。

まとめ

Rubyと異なり、デファクトスタンダードというものが存在していないPythonの開発環境構築について、自分なりに使いやすく、仕組みを理解しやすいpyenvとvirtualenvを利用した手順を紹介しました。

あんまり環境構築に時間かけすぎてもアレなので、初心者の方は今回の手順で試してみて、調べるうちにもっといいものを見つけたら、導入する。といった形で学習を進めてみてはいかがでしょうか。

閲覧いただき、ありがとうございました。

よく読まれている記事

エンジニア独立

2019/4/15

僕がITエンジニアとして独立しなかった場合の損失を計算してみた結果

どうも、フリーランスエンジニアのてぃすです。 僕はエンジニア歴が2年くらい経った頃に、月収が20万円を下回るような状態でした。 その後独立し、ほどなくして月収は100万円にまで到達しました。 実に5倍ほど収入が跳ね上がったことになります。 正直もう少し早く独立していればなぁと思っています。 今だからこそ考えられることですが、戦略さえしっかりしていれば、1年くらいは独立を早めることは可能だったと思うので。 こういう後悔というか振り返りをするたびに思うのですが、世の中僕以上に行動を遅らせることによる損失を食ら ...

続きを読む

エンジニア独立

2019/5/29

パーソルテクノロジースタッフの派遣でエンジニア歴2年の僕が時給2000円を余裕で超えた話

今いる会社を辞めることとなり、今後のエンジニアとしての身の振りを検討中のてぃすです。 今回とある派遣会社にて、業務経験なしのRuby on Railsの案件を紹介してもらい、その時給が2000円を超えていました。 月給換算したら1,2年目の正社員の給与を余裕で超えてきます。派遣という働き方の印象がガラッと変わる体験をしました。 今回はエンジニア歴2年の僕にそんな素敵な待遇を提供してくれたパーソルテクノロジースタッフについて、実体験を交えて語っていこうと思います。 エンジニア派遣の「パーソルテクノロジースタ ...

続きを読む

エンジニア独立

2019/4/29

技術を選んで働くエンジニアになるために

どうも、フリーランスエンジニアのてぃすです。 ITエンジニアと一言で言っても扱っている技術によって働き方は様々です。 また働き方に加えて、将来的なキャリアの展望も使う技術によって大きく変わってきます。 ぼくはエンジニアとして扱う技術を変化させていき、現在は週3でリモート中心でマイペースに働きながらゆとりを持って暮らせるくらいは稼げる程度にまで持っていけました。 そこで今回はITエンジニアが使う技術を選ぶことの大切さと、実際に選ぶためのテクニックについてご紹介していきます。 技術を選ぶ事による効能 まずは使 ...

続きを読む

office

エンジニア独立

2019/5/29

エンジニア歴2年の僕がレバテックフリーランスでフリーランスを目指してみた

正社員エンジニアからフリーランスエンジニアへの方向転換の一環として、業界最大手であるレバテックフリーランスの個人面談に出向いてきたので、その感想を書いていこうと思います。 フリーランスというと知識・経験・人脈を兼ね備えたスーパーエンジニアしかなれない存在だと思っている人も少なくありません。 しかし最近では今回紹介するレバテックフリーランスや以前の記事で紹介したギークスジョブなどといったエージェントを利用すれば、僕のように経験の浅いエンジニアでも十分に目指せる働き方となっています。 この記事が現在働いている ...

続きを読む

エンジニア入門

2018/8/19

プログラミング初心者に贈る挫折しない為の3つの心構え

こんにちは、フリーエンジニアのてぃすです。 最近では未経験者からプログラマー・エンジニアへの転身を志しプログラミングを学習を始めている人が増えていますね。 しかし理解出来ない部分が出てきたり、モチベーションを保てずに学習途中で挫折していまうという話も多く耳に入ってきます。 そこで今回は文系出身から職業プログラマーへ進んだ僕が、挫折しないプログラミング学習の進め方・心構えについてお話していこうと思います。 目的が具体的にイメージできる教材を使用する プログラミングの学習を始めて間もないときに、 変数に値を代 ...

続きを読む

-プログラミング
-

Copyright© TIS ENGINEER NOTE , 2020 All Rights Reserved Powered by AFFINGER5.