Skip to content

Instantly share code, notes, and snippets.

@tos-kamiya
Last active October 17, 2020 03:55
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tos-kamiya/5e35364e787887b1a9c3 to your computer and use it in GitHub Desktop.
Save tos-kamiya/5e35364e787887b1a9c3 to your computer and use it in GitHub Desktop.
Pythonのvirtualenvのまとめ

参考 virtualenvのインストールと使い方
参考 Virtualenv Tutorial
参考 Getting Started with Python on Heroku

1. virtualenvのインストール

sudo easy_install virtualenv

または、Ubuntuなら

sudo apt-get install python-virtualenv

2. 仮想環境の構築

cd project/home/path
virtualenv venv --no-site-packages

project/home/pathは適当に読み替える。 venvは仮想環境のディレクトリ名。このディレクトリ内に仮想環境の設定やモジュールやが入る。

3. 仮想環境に入る・終了する

仮想環境に入るには、

source venv/bin/activate

または

. venv/bin/activate

プロンプトの最初が(venv)に変わってれば入れている。

仮想環境から出るには、

deactivate

4. (仮想環境内での)モジュールのインストール

仮想環境の中で、

pip install モジュール

ここではsudoつけずに実行する。モジュールはvenvディレクトリ内にインストールされる。

5. requirements.txtの生成

仮想環境の中で、

pip freeze -l > requirements.txt

オプション-lは2で--no-site-pacakgeを指定し忘れていなければ不要。

ちなみに、requirements.txtは別のPC(サーバー)で仮想環境と同じモジュールをインストールするための設定ファイルとして使える。

pip install -r requirements.txt

実行例

cd ~/tmp
mkdir flasktest
virtualenv venv --no-site-packages
. venv/bin/activate
pip install flask
gedit hello.py

hello.pyの中身を以下のように作る

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()
python hello.py
^C
pip freeze -l > requirements.txt
deactivate

おまけ

PyCharmでプロジェクトの仮想環境を設定する

[File]-[Settings]で Project Interpreterを選択。 ダイアログの右上の歯車 -> [Add Local]

カレントディレクトリを変更すると自動的に仮想環境に入るようにする

以下からvirtualenv-auto-activate.shをダウンロードしてどこかに置く。

codysoyland / virtualenv-auto-activate.sh

~/.bashrc内に以下を追加する。

source /path/to/virtualenv-auto-activate.sh

あとは、2で仮想環境のディレクトリ名を.venvにしておけば、 プロジェクトののディレクトリにcdすると自動的に仮想環境に入るようになる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment