LoginSignup
10
10

More than 5 years have passed since last update.

pyenv, virtualenv つかわずdockerで環境をきりはなす

Posted at

pyenv, virtualenv つかわずdockerで環境をきりはなす

プロジェクトごとにpythonのバージョンやインストールするmoduleが違う場合、
開発環境の構築にはpyenv, virtualenv つかうのが一般的(?)な解決策だと思う。

python歴1ヶ月なのでわからんが。

しかしpyenv, virtualenv つかうより
プロジェクトごとにdockerで開発環境つくるほうがわかりよいと思ったので
試してみた。

基本的には開発用に立ち上げたコンテナ内でpythonを動かすだけだが。

pythonのバージョンをきりはなす

各バージョンのイメージのコンテナ用意するだけ

moduleを切り離す

自分はプロジェクトごとに開発環境となるコンテナ郡を管理する
docker-compose.ymlを用意する。

そしてdocker-compose.ymlにpythonのアプリとかが動くコンテナを定義するわけだが
pythonが動くコンテナに以下のような設定を加えておく。

python:
  volumes:
      - ./packages:/root/.local/lib/python2.7/site-packages

目的は
pip install--user をつけると ~/.local/ にインストールされるので
pipでインストールしたmoduleがコンテナを消しても残るようにするためである。
なんで通常のsite-packagesではなく ~/.local/ かというと
通常のsite-packagesとホストを同期するとイメージに最初から入っている
pipとかが使えなくなるから。

pythonでの開発にvimとjedi-vim使う場合はsys.pathにこのpackagesを通しておけばよい。

10
10
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
10