在Windows上安装PySDL2时遇到问题(无模块错误)
我刚才尝试安装pySDL2,但一直收到一个错误提示:
No module named 'sdl2.util'
我按照网站上的说明操作,但不知道为什么不行。而且我也没看到其他人问这个问题。
1: 我从BitBucket下载了“PySDL2-0.9.2.zip”。
2: 我解压了文件夹,并把内容移了出来。
3: 我打开命令行,然后导航到包含setup.py的目录。
4: 我输入了(按照说明的指示): python setup.py install
5: 安装似乎没问题,当命令行返回给我时,我就关闭了它。
6: 然后我进入Examples文件夹,尝试运行一个示例:
ImportError: 没有名为'sdl2.util'的模块
我接着尝试导入sdl2,结果出现了同样的错误。有人能告诉我为什么会出现这些错误吗?或者我可能做错了什么?我不知道还需要提供什么信息。我真的只是按照提供的几个步骤操作,但不知道为什么我在Python中无法访问SDL2……
[更新]
现在sdl2.util的错误已经消除了。我已经把SDL2所需的DLL安装到了Python33的DLLs
文件夹里。然后我尝试设置DLL的环境变量,指向它的位置。(这样我就不会再收到缺少库的错误等)。不过这并没有解决问题。教程明确说明这个命令应该在命令行中运行,以解决我的问题:
set PYSDL2_DLL_PATH=C:\path\to\fancy_project\third_party
我把这个修改为指向DLL文件的位置:
set PYSDL2_DLL_PATH=C:\Python33\Dlls
这样就没问题了,对吧?不对。出于某种原因,这就是不管用。每次我想运行一个示例时,都需要不断设置这个环境变量,如下所示:
os.environ["PYSDL2_DLL_PATH"] = "C:\\Python33\DLLs"
如果我不包括这个,我就会收到以下错误:
RuntimeError: could not find any library for SDL2 (PYSDL2_DLL_PATH: unset)
看起来我的环境变量没有设置,但我不知道为什么会这样。我已经尝试设置了好几次,还重启过一次。但这个问题依然存在。如果有人能帮忙就太好了。
3 个回答
另一种方法是按照这个链接中提到的要求,使用pip来安装这些依赖。
pip install PySDL2
pip install pysdl2-dll
我首先运行这个命令:python setup.py build,然后再运行:python setup.py install。接着,我下载了一个叫做 SDL2.dll 的文件,把它放在这个文件夹里:C:\Windows\System32。这样做后,我就能顺利运行示例代码了。希望对你有帮助!
在Windows上创建一个环境变量,具体参数如下:
变量名称: PYSDL2_DLL_PATH
变量值: DLL文件所在的路径
这样做解决了问题。
使用Windows的 set
命令显然只是临时的。