2016-12-11 26 views
5

l gặp sự cố "ImportError: DLL load failed: %1 is not a valid Win32 application" khi tôi cố gắng tìm hiểu Building Spatial Models in Python trên tài liệu erdas. Đối với điều này, l m sử dụng Enthought Canopy (64-bit) trên Pycharm .l muốn biết làm thế nào l có thể giải quyết vấn đề này? nên l tải về phiên bản 32 bit Canopy nhưng máy tính của tôi là 64 bit, do way.l có 64 bit version of ERDAS cài đặt trên máy của tôi và l tự hỏi liệu Erdas 32 bit phiên bản Imagine mô-đun có thể giải quyết vấn đề này?Tải DLL không thành công:% 1 không phải là ứng dụng Win32 hợp lệ trên Enthought

đây là mã ví dụ:

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() 

đây là thông báo lỗi toàn bộ:

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

Thuật ngữ "Win32" (xem traceback của bạn) là mơ hồ (đôi khi nó được sử dụng trái ngược với 64-bit, đôi khi trái ngược với cũ hơn (16) -bit), trong trường hợp nó bao gồm cả 32-bit và 64-bit). Vì ERDAS được cài đặt trong "Program Files" thay vì trong "Program Files (X86)", có vẻ như bạn đã cài đặt 64-bit ERDAS, trong trường hợp đó vấn đề sẽ không được giải quyết bằng cách cài đặt Canopy 32-bit. –

+0

vì vậy tôi cần mô-đun python 32 bit erdas để chạy mã mà không có lỗi, phải không? –

+0

Xin lỗi, không, đó không phải là ý tôi. Tôi sẽ cố gắng xem xét lại điều này trong vài ngày tới. Bạn cũng có thể muốn gắn thẻ erdas cho câu hỏi này. –

Trả lời

0

Bạn đang cố gắng tải một 32 bit DLL vào một ứng dụng 64 bit, đó là những gì các lỗi nói về. Cách duy nhất để "chuyển đổi" mô-đun của bạn thành 32 bit là biên dịch lại từ nguồn

+0

Python 2.7.12 (v2.7.12: d33e0cf91556, ngày 27 tháng 6 năm 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] trên win32, khi l kiểm tra phiên bản.so python của tôi là 32 bit, vẫn còn thông báo lỗi này là bình thường ?? –

Các vấn đề liên quan