virtualenvを試すの巻-Python 3.4.3


環境を作り直したらAmazon Linux AMIにpipが含まれていた件 | kazsoga(曽我一弘)ブログ
Amazon Linuxでpip3は使えるのに、pipが使えなくなったりする現象メモ | kazsoga(曽我一弘)ブログ
を、経てようやくvirtualenv。

pipでインストール。

$ sudo pip3 install virtualenv
Collecting virtualenv
Downloading virtualenv-12.1.1-py2.py3-none-any.whl (1.6MB)
100% |████████████████████████████████| 1.6MB 220kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-12.1.1

問題なくインストール完了。

ディレクトリ作って、
$ mkdir venvtest

ディレクトリをvirtualenvで使えるようにして、
$ virtualenv --no-site-packages venvtest
Using base prefix '/usr/local'
New python executable in venvtest/bin/python3.4
Also creating executable in venvtest/bin/python
Installing setuptools, pip...done.

※AWSで新しいAMIで試したら、$ virtualenv venvtest –no-site-packages じゃないとコマンド通らなかった。

activateしてあげると、
$ source venvtest/bin/activate

冒頭に(venvtest)がついて成功。(venvtest)はディレクトリの名称です。
(venvtest)[soga]$

環境が違うことを確認

通常の場合、
[soga]$ pip list
pip (6.1.1)
setuptools (12.0.5)
virtualenv (12.1.1)

今回作った環境の場合、
(venvtest)[soga]$ pip list
pip (6.1.1)
setuptools (15.0)

すでに違いが出てますね。

他の環境をrequirements.txtに書き出して、インストールしてみる

他の環境でpipでインストールしたパッケージをrequirements.txtに書き出します。
$ pip freeze > requirements.txt

作成されたrequirements.txtをみてみると、パッケージがちゃんと記録されているみたいです。
boto==2.36.0
Django==1.8.1
django-bootstrap-form==3.2
django-debug-toolbar==1.3.0
django-localflavor==1.1
django-social-auth3==0.7.23
facebook-sdk==0.4.0
gunicorn==19.3.0
httplib2==0.9
mysql-connector-python==2.0.3
mysqlclient==1.3.6
oauth2.3==1.5.211
Pillow==2.7.0
python-dateutil==2.4.1
python-openid==2.2.5
python-openid3==2.2.6
qrcode==5.1
simplejson==3.6.5
six==1.9.0
sorl-thumbnail==12.2
South==1.0.2
sqlparse==0.1.14
virtualenv==12.1.1

requirements.txtのダウンロードとアップロード

まずファイルのダウンロード。

ローカルのマシンで、コマンドを叩く。
以下のコマンドだと、鍵ファイルを使ってユーザ名でドメインにログインして、/home/xxxディレクトリにあるrequirements.txtを、ローカルのDownloadsディレクトリにダウンロードするという感じ。

$ scp -P 22 -i 鍵ファイル ユーザ名@ドメイン:/home/xxx/requirements.txt ~/Downloads/

次にダウンロードしたファイルをアップロード。
$ scp -P 22 -i 鍵ファイル ~/Downloads/requirements.txt ec2-user@ドメイン:/home/xxx/

参考ページ:ssh でファイル転送(SCP コマンド) – Hidde’s Tips

でインストール。
$ sudo pip install -r requirements.txt #sudoなしで実行。理由は後述。
2回ほど失敗したけど、その都度、requirements.txtを編集。

で成功したのだけれど。。。。

Successfully installed Django-1.8.1 Pillow-2.7.0 South-1.0.2 boto-2.36.0 django-bootstrap-form-3.2 django-debug-toolbar-1.3.0 django-localflavor-1.1 django-social-auth3-0.7.23 facebook-sdk-0.4.0 gunicorn-19.3.0 httplib2-0.9 oauth2.3-1.5.211 python-dateutil-2.4.1 python-openid-2.2.5 python-openid3-2.2.6 qrcode-5.1 simplejson-3.6.5 six-1.9.0 sorl-thumbnail-12.2 sqlparse-0.1.14
(venvtest)[soga]$ pip list
pip (6.1.1)
setuptools (15.0)

あれ、入ってない。。。

$ deactivate
して、見てみたら、
$ pip list
boto (2.36.0)
Django (1.8.1)
django-bootstrap-form (3.2)
django-debug-toolbar (1.3.0)
django-localflavor (1.1)
django-social-auth3 (0.7.23)
facebook-sdk (0.4.0)
gunicorn (19.3.0)
httplib2 (0.9)
oauth2.3 (1.5.211)
Pillow (2.7.0)
pip (6.1.1)
python-dateutil (2.4.1)
python-openid (2.2.5)
python-openid3 (2.2.6)
qrcode (5.1)
setuptools (12.0.5)
simplejson (3.6.5)
six (1.9.0)
sorl-thumbnail (12.2)
South (1.0.2)
sqlparse (0.1.14)
virtualenv (12.1.1)
入ってる。
なんだろうな。

で、ちょっと試してみたら、
$ sudo pip install -r requirements.txt
が原因っぽい。
$ pip install -r requirements.txt
だと、仮想環境に入った。