Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法运行vpython程序(“dll加载失败”错误)?_Python - Fatal编程技术网

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

无法运行vpython程序(“dll加载失败”错误)?,python,Python,所以我最近试着下载vpython 5.745.74?对于Python3.2.5,然后运行其中一个示例程序,但是下面的代码产生了一个错误 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:

所以我最近试着下载vpython 5.745.74?对于Python3.2.5,然后运行其中一个示例程序,但是下面的代码产生了一个错误

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​

关于此错误是如何发生的,有什么帮助吗?

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

从您的评论中,我敢肯定您下载了一个32位vpython,并尝试将其与64位Python结合使用

从外观上看,他们仅为Python3.2提供了一个32位安装程序,并建议在64位版本中使用。然而,Gohlke已经放弃了对3.2的支持,自上次编辑该页面以来,只支持3.3和3.4

如果vpython在PyPI上,并且有官方的控制盘,并且您有最新版本的pip和控制盘,它们随Python3.4一起提供,但是对于3.2,您必须安装它们,您只需pip安装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版本的旧镜像副本。 同时,如果您的老师告诉学生使用Python3.2,因为它是可以使用vpython的最新版本,您可能需要向他指出更新的信息。他可能对他希望你使用的选项有偏好。或者他可能有旧的64位3.2安装程序


*请注意,您可以在64位Windows上运行32位Python,但反过来不行。选择64位Python有一些很好的理由,例如,如果您的机器有16GB的RAM,64位Python可以在内存中保留近16GB的数据,而32位Python只能保留2-3GB的数据,但如果您在假设的优势(可能永远不会影响您)和拥有所需特定软件包的特定版本之间做出选择,32位可能会赢。

DLL加载失败的错误经常发生,但并不总是意味着你已经用32位Python安装了64位扩展模块,反之亦然。你仍然使用Python 3.2有什么原因吗?据我所知,这只是vpython赶上的最近一个错误,我的计算机科学老师说。嗯,上面有3.3和3.4版本的软件包,他已经放弃了3.2版本的软件包。听起来你的老师已经过时了,你可能想告诉他。我在vpython网站上找到了一个,没有明确提到是64或32-bit@NatalieKalos:看,上面说从Python.org下载并安装32位Python-3.2.2。还有一张便条,上面写着如果你想要64位的版本,就去Gohlke的网站。所以我很确定它是32位版本。@NatalieKalos:你可以在64位Windows上运行32位Python。使用64位Python有很多优点,但是如果在一些可能与我无关的事情上选择更好还是有一个我需要的预构建包,我认为后者是一个更好的选择。不过,我个人还是会选择64位Python 3.4。
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.
>>> ​