読者です 読者をやめる 読者になる 読者になる

修行@ホーチミン

ホーチミン長期出張の日記です

virtualenv × Python 環境構築

前書き

git から clone した Pythonプロジェクト を起動するまでが目標

かなり苦戦をしたので、メモを残します。

VM環境:ubuntu16.04LTS

手順

  • まずvirtualenvをInstall
$ sudo pip install virtualenv

   

  • 対象のプロジェクトを git clone して、以下のディレクトリ構成に設定

PythonProject1 はメインとなるプロジェクトで、PythonProject[2-4]はライブラリにあたるものです。

- /home
    - /username
        - /dirname
            + /PythonProject1
            + /env
            - /lib
                + /PythonProject2
                + /PythonProject3
                + /PythonProject4

※すべて仮名にしています      

  • virtualenvの環境構築

先ほどの階層構造内のvirtualenv環境である /env を下記コマンドにて作成します。

username@host:~/dirname$ virtualenv env

     

  • virtualenvをactivateします。

これにより、python系コマンドがLocalコマンドではなく、仮想環境 env/bin/* のコマンドとして認識されます。

#activate(開始)

username@host:~/dirname$ source env/bin/activate

#deactivate(終了)

(env) username@host:~/dirname$ deactivate

     

  • 必要なモジュールのInstall

virtualenvをactivateした状態で、必要なモジュールのInstallを行います。

ここは場合によって異なると思うので、メモ書き程度で。

#mysql-connector-python install

(env) username@host:~/mysql-connector-python$ python setup.py install


#pyDes-2.0.1 install

(env) username@host:~$ wget http://twhiteman.netfirms.com/pyDES/pyDes-2.0.1.zip 

unzip ⇒ cd pyDes-2.0.1

(env) username@host:~/pyDes-2.0.1$ pip install .


#PythonProject1 記載のrequirements.txt よりinstall

(env) username@host:~/dirname/PythonProject1$ pip install -r requirements.txt


#PythonProject1のInstall 

(env) username@host:~/dirname/PythonProject1$ pip install -e ./


#PythonProject(2-4)のInstall (ライブラリ追加)

(env) username@host:~/dirname/lib$ pip install -e PythonProject2/
(env) username@host:~/dirname/lib$ pip install -e PythonProject3/
(env) username@host:~/dirname/lib$ pip install -e PythonProject4/

     

  • server起動
(env) username@host:~/dirname/PythonProject1$ pserve development.ini 
Starting server in PID 6660.
Serving on http://0.0.0.0:50001

ここまできてやっとserverの起動ができますがドキュメントなどが整っておらず、 「必要なモジュールのInstall」の手順まででだいぶ苦戦しました...。

そしてサーバー起動時も2回ほどエラーが発生しまして、エラーの内容からなんとなく修正してみたらやっと起動することができました。

開発環境構築の大変さを学びました...。