当我尝试在内置的Android模拟器上运行Appcelerator(3.1.x)中的应用程序时,我遇到了这样的Python错误:
Traceback (most recent call last):
File "C:\Users\Donny\AppData\Roaming\Titanium\mobilesdk\win32\3.1.3.GA\android\fastdev.py", line 10, in <module>
import urllib, threading
File "C:\csvn\Python25\lib\urllib.py", line 26, in <module>
import socket
File "C:\csvn\Python25\lib\socket.py", line 47, in <module>
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.
我不擅长Python,但我从this question,this question和this one的理解是,我有一个32位版本的Python试图调用64位DLL,对吗?我正在运行64位版本的Windows 7,所以这是有道理的。如果是这种情况,我该如何解决这个问题呢?我是否必须修改Appcelerator中的某些内容才能使用64位版本的Python或者可能将其直接转换为32位DLL?
答案 0 :(得分:2)
似乎使用this script来定位系统的Python。该脚本似乎正在C:\csvn\Python25
中安装Python安装,这显然是随着Collabnet的Windows SVN一起提供的,很可能不是完整的Python安装。
您应该从python.org安装标准的64位Python。这个小批量脚本似乎表明它们支持Python 2.5和2.6,尽管2.7也可能有效。也许从安全方面开始2.6:http://www.python.org/download/releases/2.6.6/
只需安装到C:\Python26
的正常默认安装路径,并确保路径在%PATH%
环境变量的早期。
答案 1 :(得分:1)
我对不同的脚本也有同样的问题。
我的计算机上安装了32位和64位python,当我输入'python'时,它会运行32位版本。
我重新安装了64位版本,然后在我输入python时选择了那个版本。
答案 2 :(得分:0)
这似乎是字符串格式错误。
我猜,代码应该是这样的ctype.WinDll('%1'%dllPath),但是字符串没有按预期格式化,所以ctype将'%1'视为dll路径。
猜猜。