はじめに
Qiita初投稿です。よろしくお願いします。
AnacondaでPythonの32bit環境を作り、32bitでコンパイルされたDLLを読み込んで作業していました。
(Python32bit環境の作り方はこちらを参照。Anacondaで32bitのPython環境を作る)
するとあるとき、OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
というエラーが出るようになりました。
どうやらPythonの環境が32bitから64bitに変わってしまっていたようで、
これを解決するためにPythonの64bit環境を32bit環境に変更します。
Pythonの環境を確認する
現環境のPythonが64bitなのか32bitなのかを確認します。
Pythonを起動して「MSC v.1916 32 bit」なら32bit、「MSC v.1916 64 bit」なら64bitです。
$ python
Python 3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
上記の場合は64bitです。
他に、sys.maxsizeを調べるという方法もあります。
Pythonを起動してsysをimport、sys.maxsizeを表示させます。
32ビットでは 2^31-1 = 2147483647、64ビットでは 2^63-1 = 9223372036854775807 になります。
import sys
print(sys.maxsize)
condaの設定を確認・変更する
conda info
コマンドでcondaの情報を表示し、platformを確認します。
$ conda info
... 省略
platform : win-64
... 省略
set CONDA_SUBDIR=win-32
でCONDA_SUBDIRをwin-32に設定し、再度platformを確認します。
$ set CONDA_SUBDIR=win-32
$ conda info
... 省略
platform : win-32
... 省略
Pythonを再インストール
Pythonを再インストールします。といっても conda update --all
するだけです。
$ conda update --all
...省略
python pkgs/main/win-64::python-3.6.9-h5500b~ --> pkgs/main/win-32::python-3.6.8-h9f7ef89_7
...省略
win-64からwin-32に変わっていることがわかります。
Python環境の変更を確認する
Pythonを起動して確認します。
python
Python 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:28:22) [MSC v.1916 32 bit (Intel)] on win32
「MSC v.1916 32 bit」となっていたらOK