我在ubuntu lucid上有python3.3.1,我通过virtualenvwrapper'调用。我想学习pygame,所以我用pip来安装它。之前我安装了sdl和smpeg dev库
me@ubuntu: sudo apt-get install libsdl1.2-dev
...
me@ubuntu: sudo apt-get install libsmpeg-dev
...
me@ubuntu: workon envpy331
(envpy331)me@ubuntu:~$ pip install pygame
Downloading pygame-1.9.1release.tar.gz (2.1MB): 2.1MB downloaded
Running setup.py egg_info for package pygame
WARNING, No "Setup" File Exists, Running "config.py"
Using UNIX configuration...
Hunting dependencies...
SDL : found 1.2.14
FONT : not found
IMAGE : not found
MIXER : not found
SMPEG : found 0.4.5
PNG : found
JPEG : found
SCRAP : found
PORTMIDI: not found
PORTTIME: not found
....
Continuing With "setup.py"
Successfully installed pygame
Cleaning up...
然后我尝试导入pygame,这导致导入错误
(envpy331)me@ubuntu:~$ python
Python 3.3.1 (default, Apr 19 2013, 11:41:37)
[GCC 4.4.3] on linux
>>> import pygame
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/me/.virtualenvs/envpy331/lib/python3.3/site-packages/pygame/__init__.py", line 95, in <module>
from pygame.base import *
ImportError: /home/me/.virtualenvs/envpy331/lib/python3.3/site-packages/pygame/base.cpython-33m.so: undefined symbol: PyCObject_FromVoidPtr
知道如何纠正这个问题吗?
答案 0 :(得分:0)
Pygame还没有完全移植到Python 3,只有部分模块。如果你使用Python 2.7一切都应该工作。我最近遇到了同样的问题。有些人建议使用Pygame的各个模块和Python 3,但这可能很难设置。
答案 1 :(得分:0)
我知道这是一个古老的问题,但由于我花了一些时间来处理这个问题,这是在自己的虚拟环境中为pygame
安装python3.4
的最简单方法:
sudo apt-get build-dep python-pygame
sudo apt-get install python3-dev libswscale-dev libavformat-dev virtualenvwrapper
echo "export WORKON_HOME=~/.venvs" >> ~/.bashrc
echo ". /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
. ~/.bashrc
以上你做过一次。您将针对每个新环境重复以下步骤:
mkvirtualenv -a ~/your/project/path -p /usr/bin/python3.4 your_project_name
pip install hg+http://bitbucket.org/pygame/pygame
这应该下载并编译正确的pygame
版本(带有一堆警告,但仍在工作)。在Ubuntu GNOME 14.04和14.10上测试。
每次开始处理给定项目或希望在项目之间切换时:
workon your_project_name
项目名称将出现在提示中。当你想完成并回到你的系统范围的环境时:
deactivate