我下载了pySDL2(来自https://bitbucket.org/marcusva/py-sdl2/downloads)并将SDL2包解压缩到我的文件夹C:\ Python34 \ Lib \ site-packages \ PySDL2-0.9.3,它有一个子文件夹sdl2,它有一个子文件夹ext。
我还复制了一个'#hello world'程序到同一个文件夹,使用标题:
import os
os.environ["PYSDL2_DLL_PATH"] = "/Python34/Lib/site-packages/PySDL2-0.9.3"
import sys
import sdl2.ext
我是从同一个文件夹中运行的,它说它无法找到sdl2。 (我使用了os.environ系列,因为我已经设置了环境变量,但它没有帮助)
ImportError:找不到任何SDL2库(PYSDL2_DLL_PATH:/ Python34 / Lib) /site-packages/PySDL2-0.9.3/sdl2)
所以我运行pip install PySDL2,然后说: C:\ Python34 \ Lib \ site-packages \ PySDL2-0.9.3> pip install pysdl2 要求已经满足(使用--upgrade升级):c:\ python34中的pysdl2 LIB \站点包 清理......
所以,我在python库中有这个包,我在环境中指出它,pip说它已经存在了,但不知何故python无法找到它导入。
我该怎么办?
答案 0 :(得分:1)
PySDL2没有附带SDL2库。
您需要PyLDL2的SDL2库才能工作。 SDL2是完成所有艰苦工作的库。 PySDL2只是允许您从Python访问它的接口。
有关如何安装的详细信息,请查看http://pysdl2.readthedocs.org/en/latest/install.html。然后查看http://pysdl2.readthedocs.org/en/latest/integration.html以获取有关如何使用PYSDL2_DLL_PATH
的信息对于我的项目,我选择不在Python中安装PySDL2。我将所有PySDL2内容放在名为" sdl2"的项目子目录中,并将所有Windows SDL2 DLL放在一个名为" sdl2_dll"的单独子目录中。然后在项目的根目录中,我有以下文件名为sdlimport.py
"""Imports PySDL2
This module imports PySDL2 and the SDL2 libraries held within the project
structure (i.e. not installed in Python or in the system).
Setup:
[myproject]
|-sdlimport.py
|-main.py
|-[sdl2]
| |-The PySDL2 files
|-[sdl2_dll]
|-SDL2.dll
|-SDL2_image.dll
|-SDL2_mixer.dll
|-SDL2_ttf.dll
|-and all the other dlls needed
Edit sdlimport.py to include which bits of sdl2 you need.
Example:
from sdlimport import *
sdl2.dostuff()
"""
import os
# app_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
app_dir = os.path.dirname(os.path.realpath(__file__))
"""str: the path to your project, detected at import time
"""
sdl2_dll_path = os.path.join(app_dir, "sdl2_dll")
os.environ["PYSDL2_DLL_PATH"] = sdl2_dll_path
#--- Comment these out as needed ---
import sdl2
import sdl2.sdlimage
import sdl2.sdlttf
#import sdl2.sdlgfx
#import sdl2.sdlmixer
import sdl2.ext
然后,在每个需要pysdl2的文件中,使用from sdlimport import *
答案 1 :(得分:0)
在我的工作中我必须这样做以便它能够实现sdl2的位置(在我下载sdl2之后,已经安装了pysdl2)。
导入os
os.environ [" PYSDL2_DLL_PATH"] = r" c:\ yourdirectory"
导入sdl2.ext
我试过的任何其他方式都行不通。只需更改到sdl2.dll所在的目录。