Windows10にPython環境を構築

訳あって、Windows10(たまたま32bit版)上でPythonの環境を構築しています。
で、Python2.7系とPython3系を同時に使いたいのと、Pythonの仮想環境を利用したい(作ったスクリプトを他人に使わせるには必要なパッケージが明確になってないといけない)ので、いろいろ調べながらやってます。

1.Pythonのインストール

まず、Python3系をインストーラを使ってインストールします。インストール時には「Add Python to environment variables」のチェックは外しておきます。py.exeに起動するPythonを選ばせるためみたいです。

次に、Python2系をやはりインストーラを使ってインストールします。インストール時には「Register Extensions」を外します。

インストールできたかどうかは

としてそれぞれPython2系、Python3系が起動できているか確認します。

2.virtualenvのインストール

Python2系用の仮想環境を作成するvirtualenvをインストールします。

デフォルトの文字コードがasciiだと失敗するようなので、デフォルトの文字コードを変更します。C:\Python27\Lib\site-packages の下に、sitecustomize.py という名前で以下のファイルを作成します。

作成したら、反映されていることを確認します。

次に、pipをバージョンアップします。

次に、virtualenvをインストールします

3.virtualenvを使ってみる

早速Python2.7の仮想環境を作ってみます。

ということで、エラーになってしまいます。で、エラーの原因はまた「UnicodeDecodeError」です。
原因は、どっかにあるvirtualenv.pyの中で文字コードがascii決め打ちになっているsite.pyを仮想環境の中に展開して、それを使ってしまうために起きているように見えます。
いろいろやってみると、virtualenvを再実行しても一旦ディレクトリを消したりはしないようですので、これを逆手にとって、一度実行してエラーになってから、sitecustomize.py をコピーしてやるととりあえず最後まで処理が進むようです。
具体的には、上記の例の場合、エラーになってから、sitecustomize.py をコピーしてきてから再度 virtualenv を起動します。(注:そんなことをしなくてもいい方法がありました・・・後のほうに書いてあります

ということで、旨くいきました。仮想環境への移行も

でうまくいくようです。
この上で、scriptsフォルダの下にあるactivate.batを動かして仮想環境に移行後、python2用に作成したスクリプトを動かしてみましたが、無事に動作しました。

直後に追記)
こんな回りくどいことをしなくても、–system-site-packages と付ければOKのようです。
(下記1行目がその例です)

4.venvを使ってみる

Python3系用の仮想環境のvenvを使ってみます。こちらはpython3系には標準で入っているので簡単です。使い方はvirtualenvとほぼ同じ。

でPython3系が動くことが確認できました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)