主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Python: virtualenvを使って開発中のプロジェクト専用のPython環境を構築

                
tags: python
 趣味でPython開発に使っているPTVSを導入したVisualStudioではvirtualenvが使えるということだった。virtualenvをまだ使ったことがなかったが、せっかくなのでこれを機会に使ってみる。まずはVisualStudio外で。
公式ドキュメント:https://virtualenv.pypa.io/en/latest/index.html


 virtualenvを使う利点は任意のプロジェクト専用のPython環境を用意できるというところだろう。今Pythonユーザは3系への移行の途中にあって、たぶん開発に使っているPCには2.xと3.xが混在している。ターミナルに”python”と打ってどのバージョンのPythonが実行されるかは設定次第だが、プロジェクトを変えるたびにそのあたりの設定まで変えるのは手間がかかる。だからプロジェクトごとに専用のPythonバージョンをあててしまおうということでvirtualenvが使える。あとサードのライブラリがまっさらな状態の環境が用意できるのでパッケージ間の依存関係に困らされることも回避できるだろう。
 virtualenvを実行するときに利点について再度触れていく。virtualenvはWindowsでも使えるので今回はWindowsで。

 まずはインストール。virtualenvはPythonパッケージの一つなのでpipを使ってインストールが楽。
pip install virtualenv

 virtualenvの使用準備ができたので適当なプロジェクトのPython環境を作ってみる。myというディレクトリにhello.pyという適当なPythonスクリプトを用意する。これをPython 2.7で実行するものだということにする。
hello.py
import sys

print(sys.version)


 まずvirtualenvによる仮想環境の準備。myディレクトリで下記のコマンドを実行。Python2.7を使うように、コマンドのオプションでEXEへのパスを渡してある。
virtualenv -p c:\python27\python.exe .
コマンドの実行でmyディレクトリ内には新たなディレクトリとしてInclude、Lib、Scriptsが作成される。Scripts内にactivate.batがあるのでコマンドプロンプトで実行すると”C:\users\h\desktop\my”と表示されていたカレントディレクトリの表示が”(my) C:\users\h\desktop\my”と表示されるようになる。これでこのプロジェクト用のPython環境が実行されていることになる。ためしにこの環境の実行下で”python hello.py”とやってみれば、そのPCのデフォルトのPythonが3.4であったとしても、Python 2.7が実行されるのがわかる。
 ぼくのPCにはPythonの2.7と3.4が入っているが、デフォルトは3.4である。”python”とコマンドを打てば通常はPython 3.4が実行されるが、今回構築した環境の実行下ではPython 2.7が実行される。最初にPython 2.7を使うように指定したから、この環境下では3.4ではなく2.7が出てくる。
 ディレクトリScripts内にpipがあるので必要なものはこれを使ってインストール。そうすればこのプロジェクトのディレクトリLib下にあるsite-packagesにインストールされる。PC自体のPython環境にインストールされるわけではないので、このプロジェクト用に特定のバージョンを使ったりできる。


 あとは環境変数としてPYTHONPATHとかが設定されていると、そっちまでパスに加えられてスクリプトを探しに行ってしまうので、適宜実行時にパスを書き換え。Scripts\activate.batのパス設定部分を必要に応じて書き換えたり。
set "PYTHONPATH="
set "PATH=%VIRTUAL_ENV%\Scripts;"

 virtualenvを使えばプロジェクトに任意のPython環境を構築できる。Pythonやらパッケージやらで様々なバージョンを使い分ける手段として使っていける。
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。