2015-07-02 3 views
0

Я загрузил pySDL2 (от https://bitbucket.org/marcusva/py-sdl2/downloads) и распаковал пакет SDL2 в папку C: \ Python34 \ Lib \ site-packages \ PySDL2-0.9.3, которая имеет подпапку sdl2, которая имеет подпапку ext.Как я могу получить python3.4, чтобы найти модуль PySDL2, который я загрузил на win7?

Я также скопировал программу «привет мир» в ту же папку, используя заголовок:

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 /сайт-пакеты/PySDL2-0.9.3/sdl2)

Так что я побежал пип установить pySDL2, и сказал: C: \ Python34 \ Lib \ Site-пакеты \ PySDL2-0.9.3> пункт установить pysdl2 требование уже удовлетворены (используйте --upgrade для обновления): pysdl2 in c: \ python34 \ lib \ site-packages Очистка ...

Итак, я есть пакет в библиотеке python, на который я указал в среде, и pip говорит, что он уже существует, но каким-то образом python не может найти его для импорта.

Что мне делать?

+0

Мне пришлось загрузить DLL и указать на него с os.environ ["PYSDL2_DLL_PATH"] после установки с помощью PIP. Не думайте, что ожидается поведение, но, по крайней мере, оно работает. – redmaw

ответ

1

PySDL2 не поставляется с библиотеками SDL2.

Вам нужны библиотеки SDL2 для PySDL2 для работы. SDL2 - это библиотека, которая выполняет всю тяжелую работу. PySDL2 - это просто интерфейс, позволяющий вам получить доступ к нему с Python.

Подробнее о том, как его установить, см. На странице http://pysdl2.readthedocs.org/en/latest/install.html. А затем посмотрите на http://pysdl2.readthedocs.org/en/latest/integration.html для получения информации об использовании PYSDL2_DLL_PATH

Для моих проектов я решил не устанавливать PySDL2 в Python вообще. Я поместил весь материал PySDL2 в подкаталог проекта под названием «sdl2» и все DLL-файлы Windows SDL2 в отдельный подкаталог под названием «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 *

0

На шахте я должен был сделать это, чтобы за него чтобы понять, где был sdl2 (после того, как я загрузил sdl2, pysdl2 уже установлен).

импорт ОС

os.environ [ "PYSDL2_DLL_PATH"] = г "C: \ yourdirectory"

импорт sdl2.ext

Это не будет работать по-другому я пытался. просто перейдите в каталог, где находится файл sdl2.dll.