【问题标题】:importing pygame on python3 on virtualenv cause ImportError在 virtualenv 上的 python3 上导入 pygame 导致 ImportError
【发布时间】:2013-05-25 04:39:59
【问题描述】:

我在 ubuntu lucid 上有 python3.3.1,我通过 virtualenvwrapper 调用它。我想学习 pygame,所以我使用 pip 安装它。在此之前我安装了 sdl 和 smpeg 开发库

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

知道如何纠正这个问题吗?

【问题讨论】:

    标签: python-3.x pygame importerror


    【解决方案1】:

    Pygame 还没有完全移植到 Python 3,只有一些模块。如果您使用 Python 2.7,一切都应该正常。我最近遇到了同样的问题。有人建议在 Python 3 中使用 Pygame 的各个模块,但这可能很难设置。

    【讨论】:

      【解决方案2】:

      我知道这是个老问题,但由于我花了一些时间解决这个问题,这是在自己的虚拟环境中为 python3.4 安装 pygame 的最简单方法:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        • 2021-03-20
        • 1970-01-01
        • 2012-11-12
        • 2017-08-31
        相关资源
        最近更新 更多