无法运行vpython程序(" dll加载失败"错误)?

时间:2015-05-23 23:33:52

标签: python

所以我最近尝试为python 3.2.5下载vpython 5.74(5.74?),然后运行其中一个示例程序,但以下代码产生错误

from visual import *

floor = box(length=4, height=0.5, width=4, color=color.blue)

ball = sphere(pos=(0,4,0), color=color.red)
ball.velocity = vector(0,-1,0)

dt = 0.01
while 1:
    rate(100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < 1:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt​

运行它的shell上的错误说

Traceback (most recent call last):
  File "C:\Python32\Lib\site-packages\visual\examples\bounce.py", line 1
    from visual import *
  File "C:\Python32\lib\site-packages\visual\__init__.py", line 1
    from .visual_all import *
  File "C:\Python32\lib\site-packages\visual\visual_all.py", line 1
    from vis import version
  File "C:\Python32\lib\site-packages\vis\__init__.py", line 3
    from .cvisual import (vector, dot, mag, mag2, norm, cross, rotate,
ImportError: DLL load failed: %1 is not a valid Win32 application.
>>> ​

有关此错误如何发生的任何帮助?

1 个答案:

答案 0 :(得分:0)

这通常(并非总是,但这是导致此问题的最常见原因)意味着您已经安装了64位扩展模块,然后尝试将其与32位Python一起使用,反之亦然。 *

根据您的评论,我非常确定您下载了32位vpython,并尝试将其与64位Python一起使用。

通过查看vpython download page,它们仅为Python 3.2提供32位安装程序,并建议将Christoph Gohlke's site用于64位版本。然而,Gohlke已经放弃了对3.2的支持,自上次编辑该页面以来只有3.3和3.4。

如果vpython在PyPI上并且有官方轮子,并且您拥有最新版本的pipwheel(其中包含Python 3.4开箱即用,但是对于3.2你必须安装它们,你可以pip install vpython,它会下载正确的版本和所有先决条件。不幸的是,他们似乎不在PyPI上,他们网站上的软件包和Gohlke似乎是安装vpython而不从源代码构建它的唯一方法。

所以,您的选择似乎是:

  • 升级到64位Python 3.4并从Gohlke网站安装新轮子。 (在这种情况下,您需要标有cp34-none-win_amd64.whl标记的内容。请按照页面顶部的说明进行安装。)
  • 切换到32位Python 3.2并从vpython站点(您已下载的站点)安装旧包。
  • 为64位Python 3.2自己构建。
  • 在某处搜索Gohlke的64位Python 3.2版本的旧镜像副本。

同时,如果您的老师告诉学生使用Python 3.2,因为它是可以使用vpython的最新版本,您可能需要向他指出更新的信息。他可能偏好他希望你使用哪种选择。 (或者他可能有旧的64位3.2安装程序。)

*请注意,您可以在64位Windows上运行32位Python,但不是相反。有一些很好的理由喜欢64位Python - 例如,如果你的机器有16GB的RAM,64位的Python可以在内存中保留近16GB的数据,而32位的Python只能保持2-3GB-但是如果在可能永远不会影响您的假设优势与您需要的特定包的特定版本之间做出选择,32位可能会获胜。