VS Codeでvenvがうまく動作しなくなった話

結論 venvをあきらめて、Pipenvを導入すればなぜか解決した。 経緯 Pythonの開発環境にVS Codeを使っていましたが、ある日突然、venvで作った環境が見えなくなりました。 PowerShellからは切り替えができるので、venv自体は正しく動いているようでした。 PythonとVS Codeをクリーンインストールしても状況は変わりませんでした[1]。 Pipenvの使い方 最近はPipenvというものがあるらしいので、それを導入することとしました[2][3]。 pip install pipenv 以下のように環境変数を設定することで、プロジェクトのフォルダ直下に仮想環境を構築してくれます。 PIPENV_VENV_IN_PROJECT=true VS Code上にフォルダを作成し、その直下で仮想環境を作成します。 コマンドはVS Code上のPowerShellで行いました。 例えば以下のようになります。パスやPythonのバージョンはご自身の環境に合わせてください。 *pythonの後に半角スペースがあるのでうっかり詰めないでください。 *venvファイルが作成されるという情報もありますが、私の場合はPipfileのみ作られました。 PS PS C:\Users\User Name\Documents\CODE\Python\Test> pipenv install --python 3.8 VS Code上でF1キーを押して、「reload」を検索して実行します。 これで左下のPythonのバージョンセレクトから環境選択できるはずです。 仮想環境から抜けるときは以下のコマンドを使います。 deactivate 参考文献 [1] sota0726 「VScodeを完全にアンインストールする方法(windows10)「拡張機能のホストが予期せずに終了しました。」を改善するために」閲覧日:2020/09/13 https://www.atmarkit.co.jp/ait/articles/1810/12/news026.html [2] KRiver1 「pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。」閲覧日:2020/09/13 h

Python:PILをWindows7 64bit環境で使う

こんにちは。もう9月だというのにまだまだ暑いですね。

 今回はPythonを使用していてハマったエラーの対処法を載せておきます。
Pythonにおいて画像を処理しよとするとよく用いられるのが、PIL(Python Imaging Library )です。

[参考]Python Imaging Library (PIL) : http://www.pythonware.com/products/pil/

このライブラリを使うと簡単に画像処理ができます。
具体的にはPNG画像を表示するためにPILを使用したいと考えました。
しかし、ライブラリをインストール後以下の様なエラーメッセージが表示され、正常に動作しません。

ImportError: The _imaging C module is not installed

モジュールをインストールしたはずなのに見つからないようです。
*インストールはインストーラではなく手動で行いました
このエラーメッセージを頼りに検索していくと、Windowsの64bit環境において起きるということがわかりました。

[参考]流れ着いたら。。。:http://www.flotsam-fareast.com/2011/02/64bit-windows-python-image-library-20110212.html

そこで、以下のサイトから64bit用のPILのインストーラをダウンロードしてインストールしました。

Unofficial Windows Binaries for Python Extension Packages:http://www.lfd.uci.edu/~gohlke/pythonlibs/

しかし、インストラーを起動すると以下の様なメッセージが表示され、それ以上進めなくなりました。
Python version 2.* is required, which was not found in the registry
PILを手動でインストールしなければその時点で発生したエラーだと思います。
そこで対処法を調べると、レジストリを読み間違えているということがわかりました。
[参考]Yamada Program:http://yamada-program.blogspot.jp/2011/05/pythonsetuptools-64bit.html

ただし、私はPythonのレジストリを書き換えたくないという事情があり、他の方法を模索することとしました。

Unofficial Windows Binaries for Python Extension PackagesでダウンロードしたPILはインストールできないので、EXEファイルをExplzhで解凍して問題のあるDLLを直接置き換えることとしました。

まず、Python Imaging Library (PIL)からPython Imaging Library 1.1.7 Source Kitをダウンロードし、解凍します。
次にUnofficial Windows Binaries for Python Extension Packagesから自分のPython環境に合致するインストーラをダウンロードします。
ダウンロードしたインストーラをExplzhで解凍します。
展開すると中には、以下の二つのフォルダがあります。

・PLATLIB
・SCRIPTS

まず、PLATLIBの中のPILというフォルダの中身をすべて、Imaging-1.1.7>PILに上書きします。
次にSCRIPTSの中身をすべて、Imaging-1.1.7>Scriptsに上書きします。

最後にImaging-1.1.7のフォルダをPython26\Lib\site-packagesなどに移し、PYTHONPATHを通せば完了です。
PYTHONPATHの通し方は、前の記事を参照して下さい。

これでレジストリを書き換えることなくWindows7 64bit環境でPILが使用出来るようになりました。
今回は以上となります。

コメント

このブログの人気の投稿

C++11のためにGCCの最新版をインストールする

分解:Logicool M570

MOCO'Sキッチンのフォントに似せるβ版