LoginSignup
40
31

More than 5 years have passed since last update.

virtualenvをgitで管理すると便利

Last updated at Posted at 2018-07-30

概要

pythonのvirtualenvを使うと,独立した環境でpythonの環境を構築できる.
これらをgitを通してOS間,PC間で共有したい.
多分イカしたgitignoreやディレクトリ間の設定があるだろう,ということで調べた.

なにがうれしい?

  • virtualenvを使うと簡単にpython環境が構築できる
  • virtualenvなのでローカルの設定を汚さない
  • gitを使って構築したpython環境を簡単に共有

元リポジトリでやること

  1. git環境構築
  2. virtualenv用のgitignoreを設定
  3. virtualenv構築
  4. pipでパッケージを入れる
  5. requirement.txtを出力
  6. リモートリポジトリに反映

具体的な手順

#1. git環境構築
#作業用リポジトリ作成
$ mkdir repo
$ cd repo

#git環境構築
$ git init .

#2. virtualenv用のgitignoreを設定
#以下のgitignoreを追加する
$ touch .gitignore
$ git add .gitignore
$ git commit -m "add .gitignore"
.gitignore
# Created by https://www.gitignore.io/api/virtualenv

### VirtualEnv ###
# Virtualenv
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
.Python
[Bb]in
[Ii]nclude
[Ll]ib
[Ll]ib64
[Ll]ocal
[Ss]cripts
pyvenv.cfg
.venv
pip-selfcheck.json


# End of https://www.gitignore.io/api/virtualenv
#3. virtualenv構築
$ virtualenv .

#4. pipでパッケージを入れる
$ pip install hoge

#5. requirement.txtを出力
$ pip list
$ pip freeze > requirements.txt

#6. リモートリポジトリに反映
$ git add .
$ git commit -m "set python env"
$ git push -u origin

クローン先のリポジトリのやること

  1. git clone
  2. virtualenv構築
  3. requirement.txtからpipでパッケージを入れる
  4. 同期完了
#1. git clone
$ git clone fuga

#2. virtualenv構築
$ virtualenv .

#3. requirement.txtからpipでパッケージを入れる
$ pip install -r requirements.txt

#4. 同期完了
$ pip list

補足

virtualenvすると以下のようなファイルが出てくる.
なのでprojectファイルなどを作成して,そこにソースコードを記述していくと簡潔で分かり良い

# virtualenv した直後のファイル構成
bin/
include/
lib/
local/
share/
pip-selfcheck.json

# 追加したprojectファイル以下にソースコードを入れていくとさらにわかりやすい
project/ 

自分でやってみたリポジトリ

https://github.com/m-masaki72/virtualenv_git_test

参考文献

Best Practice for virtualenv and git repo

virtualenv (Python仮想環境)の使い方
Python Tips:ライブラリをまとめてインストールしたい

40
31
1

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
40
31