如何让python3.4找到我在win7上下载的PySDL2模块?

时间:2015-07-02 01:02:28

标签: python-3.x install pysdl2

我下载了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无法找到它导入。

我该怎么办?

2 个答案:

答案 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所在的目录。