SL6にvirtualenv+python2.7
pyhton2.7を使いたいけどRHEL6はまだpython2.6なのねん(´・ω・`)
かといってyumはpython使ってるみたいだし,まさか...
ln -s /usr/local/bin/python27 /usr/bin/python
((((;゚Д゚))))ガクブル
というわけでおりこうさんにvirtualenv入れてその上でpython2.7の環境を構築しようと思います.
Macportだとpython_selectってのあるみたいだけど.いまはport selectだっけか.
python2.7
orderddictとかcounterつかいたいじゃない?
What’s New in Python 2.7 — Python v2.7.3 documentation
SnowLeopardでもRHEL6でも採用されてないバージョンを使うのは怖いけど(´・ω・`)
Ubuntu11では採用されてたけど.まぁいいや.
参考サイトです.
CentOS 5.6 に Python 2.7.1 と mod_wsgi 3.3 をインストール - Debian GNU/Linux 3.1 on PowerMac G4
$ wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz $ tar zxvf Python-2.7.2.tgz
ここでpythonにあるzlibモジュールが標準だとインストールされないようです.
開発用zlib(zlib-devel)をインストールし,Module/Setupを書き換え.
$ sudo yum install zlib zlib-devel $ vim Python-2.7.2/Module/Setup # Andrew Kuchling's zlib module. # This require zlib 1.1.3 (or later). # See http://www.gzip.org/zlib/ zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz # ↑コメントアウトする
ここまでで準備完了.あとはいつも通りconfigure -> make -> make install.
$ cd Python-2.7.2 $ ./configure --with-threads --enable-shared $ make $ make install
正直configureのoptionはよくわかってません...
ここちゃんと調べないとなぁ.
-
- with-threadはスレッドの有効化,--enable-sharedはライブラリの共有だそうです.
共有ライブラリ(--enable-shared)指定は以下の通り.
$ vim /etc/ld.so.conf.d/python2.7.conf
$ /sbin/ldconfig
これでめでたく以下のコマンドでpython2.7起動です.
$ /usr/local/bin/python Python 2.7.2 (default, Dec 18 2011, 00:45:19) [GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
うむ(`・ω・´)
virtualenv
仮想環境変数を構築するものですね.
参考サイト.
virutualenvとvirtualenvwrapperとpipを使う - YAMAGUCHI::weblog
とりあえずpython-setuptools -> easy_install -> virtualenvの流れで.
$ yum install python-setuptools $ easy_install pip $ pip install virtualenv $ virtualenv --version 1.7
最新版いいね(・∀・)
ついでにvirtualenvを管理してくれるvirtualenvwrapperも入れました.
$ pip install virtualenvwrapper
ほいで.zshrcに以下を記述.
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python source /usr/bin/virtualenvwrapper.sh
二行目がないとなぜかVIRTUALENVWRAPPER_PYTHONが/usr/local/bin/pythonを参照してしまってインポートエラーが出てしまったです.
Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.
python2.7環境をvirtualenvで
こっから本番!
mkvirtualenv --python=/usr/local/bin/python2.7 --no-site-packages --distribute ~/python2.7
pythonの実行ファイルを指定します.-p PYTHON_EXEも可能.
- --no-site-packages
グローバルなsite-packagesとvirtualenv環境が隔離されます.
まっさらな環境がほしい時はこれ.
virtualenv1.7からデフォルトになったみたいです.
- --distribute
パッケージ管理にsetuptoolsの代わりにdistrubuteを使用するそうです.
.zshrcに以下を記述してデフォルトに出来ます.
export VIRTUALENV_DISTRIBUTE=true
ちなみにこれ,Documentと--helpで記述違いますが,--helpのほうが正解でした.
んでまとめ.
# 環境作成 $ mkvirtualenv --python=PYTHON_EXE (envname) # 環境切り替え $ workon (envname) # 元の環境に戻る $ deactivate # 環境削除 $ rmvirtualenv (envname)
(おまけ)環境を移行したい時は?
pipを使います.
[移行元]
$ pip freeze > packages.txt $ pip bundle -r packages.txt source.pybundle
↓
[移行先]
# ネット接続環境下 $ pip install -r packages.txt # ネットなくてもOK $ pip install source.pybuldle