2016-12-11 37 views
5

l erdas文書でBuilding Spatial Models in Pythonを習得しようとすると、"ImportError: DLL load failed: %1 is not a valid Win32 application"という問題が発生します。このため、Enthought Canopy (64-bit)Pycharm .lで使用すると、この問題をどのように解決できるか知りたいですか?私のPCには64 bit version of ERDASがインストールされており、私はErdas 32 bitバージョンImagineモジュールがこの問題を解決できるかどうか疑問に思っていますか?ここDLLの読み込みに失敗しました:エラーが発生した場合、%1は有効なWin32アプリケーションではありません

はサンプルコードです:ここ

from exampleshelper import dataPath, outputPath 
from imagine import modeler 


m=modeler.Model() 
ri = m.RasterInput(dataPath + "C:/Users/owrasa/PycharmProjects/den/data/lanier.img") 
bandSelect = m.BandSelection(ri, "1:4") 
sumBands = m.StackTotal(bandSelect) 
ro = m.RasterOutput(sumBands, outputPath + "summing-image-layers.img") 
m.Execute() 

は、全体のエラーメッセージです:

C:\Users\owrasa\AppData\Local\Enthought\Canopy\User\Scripts\python.exe C:/Users/owrasa/PycharmProjects/den/layerstack.py 
Using example data from C:/Users/owrasa/PycharmProjects/den\..\data\ 
and saving results in C:/Users/owrasa/PycharmProjects/den\..\output\ 
Traceback (most recent call last): 
    File "C:/Users/owrasa/PycharmProjects/den/layerstack.py", line 3, in <module> 
    from imagine import modeler 
    File "C:\Program Files\Intergraph\ERDAS IMAGINE 2014\usr\lib\Win32Release\python\imagine\__init__.py", line 19, in <module> 
    import init 
    File "C:\Program Files\Intergraph\ERDAS IMAGINE 2014\usr\lib\Win32Release\python\imagine\init\__init__.py", line 56, in <module> 
    _initToolkit(); 
    File "C:\Program Files\Intergraph\ERDAS IMAGINE 2014\usr\lib\Win32Release\python\imagine\init\__init__.py", line 51, in _initToolkit 
    import _init 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Process finished with exit code 1 
+0

用語 "Win32"(トレースバックを参照)はあいまいです(64ビットとは対照的に使用されることもあります。 -bit)バージョンで、32ビットと64ビットの両方が含まれています)。 ERDASは「Program Files(X86)」ではなく「Program Files」にインストールされているため、64ビットERDASがインストールされている可能性があります。その場合、Canopy 32ビットをインストールすることで問題は解決しません。 –

+0

32ビットerdas pythonモジュールが必要なので、エラーなくコードを実行できますか? –

+0

申し訳ありませんが、それは私が意味するものではありません。私は数日後にこれをもう一度見ようとします。この質問でerdasにタグを付けることもできます。 –

答えて

0

あなたは64ビットのアプリケーションに32ビットのDLLをロードしようとしている、それがどのようなエラーです約です。あなたのモジュールを32ビットに "変換"する唯一の方法は、ソースから再コンパイルしています

+0

Python 2.7.12(v2.7.12:d33e0cf91556、Jun 27 2016、15:19:22)[MSC v.1500 32ビット(Intel)] win32上で、version.soをチェックすると、私のpythonは32ビットですこのエラーメッセージは正常ですか? –

関連する問題