【问题标题】:DLL load failed: %1 is not a valid Win32 application - AppceleratorDLL 加载失败:%1 不是有效的 Win32 应用程序 - Appcelerator
【发布时间】:2014-01-02 07:22:22
【问题描述】:

当我尝试在内置 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 questionthis questionthis one 了解到,我有一个 32 位版本的 Python 试图调用一个 64 位 DLL,对吗?我在 64 位版本的 Windows 7 上运行,所以这是有道理的。如果是这种情况,我该如何解决这个问题?我是否必须修改 Appcelerator 中的某些内容以使用 64 位版本的 Python,或者可能将其定向到 32 位 DLL?

【问题讨论】:

标签: android python dll appcelerator


【解决方案1】:

它似乎在使用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% 环境变量的早期。

【讨论】:

  • 这确实为我指明了正确的方向,但并没有完全解决我的问题。
  • 好吗?那现在有什么困难?
  • 哇。没关系。那成功了!我刚刚再次测试它并且它正在运行。非常感谢!
【解决方案2】:

我在使用不同的脚本时遇到了同样的问题。

我的电脑上安装了 32 位和 64 位 python,当我在其中输入“python”时,它会运行 32 位版本。

我重新安装了我的 64 位版本,然后当我输入 python 时它选择了那个。

【讨论】:

  • 只需将正确的 Python 首先放在您的 %PATH% 上就足够了。
【解决方案3】:

这似乎是一个字符串格式错误。

我猜,代码应该是这样的 ctype.WinDll('%1' % dllPath),但字符串格式不符合预期,所以 ctype 将 '%1' 视为 dll 路径。

只是猜测。

【讨论】:

  • 虽然这是错误的并且令人烦恼,但它与问题并没有特别的关系。
猜你喜欢
  • 2012-09-08
  • 2012-03-05
  • 2013-01-15
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
相关资源
最近更新 更多