简体   繁体   English

在 Ubuntu 中为 Python 3.1.2 安装 Pygame

[英]Installing Pygame for Python 3.1.2 in Ubuntu

I'm reading the book Introduction to Computer Science Using Python and Pygame by Paul Craven (note: legally available for free online).我正在阅读 Paul Craven 的《使用 Python 和 Pygame 的计算机科学导论》一书(注意:可合法免费在线获得)。 In the book, he uses a combination of Python 3.1.3 and Pygame 1.9.1.在书中,他使用了 Python 3.1.3 和 Pygame 1.9.1 的组合。 In my Linux Ubuntu machine, I have Python 3.1.2 but even after I sudo apt-get installed python-pygame (version 1.9.1), Python 3.1.2 can't import pygame. In my Linux Ubuntu machine, I have Python 3.1.2 but even after I sudo apt-get installed python-pygame (version 1.9.1), Python 3.1.2 can't import pygame.

Python 3.1.2 (r312:79147, Sep 27 2010, 09:45:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygame

Python 2.6.5 imports it without fuss, however, Python 2.6.5 毫不费力地导入它,但是,

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> 

Are you aware of any issues for Linux/Ubuntu's Python 3.1.2 (Prof. Craven used Windows in his book)?您是否知道 Linux/Ubuntu 的 Python 3.1.2 的任何问题(Craven 教授在他的书中使用了 Windows)? How come Pygame 1.9.1 worked for Python 3.1.3 but not for 3.1.2? Pygame 1.9.1 为何适用于 Python 3.1.3 但不适用于 3.1.2?

Thanks for any pointers.感谢您的任何指示。 (--,) (--,)

PyGame on Python 3 remains experimental, but these steps worked for me on Ubuntu 11.10: Python 3 上的 PyGame 仍处于试验阶段,但这些步骤在 Ubuntu 11.10 上对我有用:

sudo apt-get install mercurial python3-dev libjpeg-dev libpng12-dev libportmidi-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev libx11-dev ttf-freefont libavformat-dev libswscale-dev
hg clone -u 01b2cb16dc17 https://bitbucket.org/pygame/pygame
cd pygame
python3 config.py
2to3 setup.py -w
python3 setup.py build
sudo python3 setup.py install

(You may remove the -u 01b2cb16dc17 to try the latest version; 01b2cb16dc17 worked for me.) (您可以删除-u 01b2cb16dc17以尝试最新版本; 01b2cb16dc17为我工作。)

I hate to re-open an old post, but I had the hardest time installing pygame with a version of python that was not Ubuntu's default build.我讨厌重新打开一个旧帖子,但我最难安装 pygame 版本的 python 不是 Ubuntu 的默认版本。 So I created this tutorial/ how to:所以我创建了本教程/如何:

Install python3.1 and pygame1.9.1 in Ubuntu 在Ubuntu中安装python3.1和pygame1.9.1

I hopes this helps the next unfortunate soul to try this.我希望这有助于下一个不幸的灵魂尝试这个。

I installed pygame for python3 quite easily using the pip3 ( a tool for installing and managing Python packages ) command on Ubuntu 16.04.7 LTS .我在 Ubuntu L604 上使用pip3用于安装和管理 Python 包的工具)命令很容易地为 python3安装了pygame

  1. Open a terminal and install pip3 , type sudo apt install python3-pip打开终端并安装pip3 ,输入sudo apt install python3-pip
  2. Now use it to install pygame for python3 , type pip3 install pygame现在用它为python3安装pygame ,输入pip3 install pygame

That's it: Import the library and confirm that everything works:就是这样:导入库并确认一切正常:

# I'll try it out using the python 3 interpreter.
python3 --version
Python 3.5.2
robert@robert-E7212:~/Source/Python/python_crash_course/alien_invasion$ python3
Python 3.5.2 (default, Oct  7 2020, 17:19:02) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
# No errors, pygame was imported successfully!
>>> import pygame
pygame 2.0.0 (SDL 2.0.12, python 3.5.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
>>> 

I followed @Søren 's method, but without the -u number.我遵循@Søren 的方法,但没有 -u 号码。

The only complication was a few compilation errors at the last line, all due to syntax and unicode differences between Python 2 and Python 3, but with a little checking of the web documentation it was a matter of a few minutes with a text editor modifying the following files (all paths are relative to the pygame directory created during the download): The only complication was a few compilation errors at the last line, all due to syntax and unicode differences between Python 2 and Python 3, but with a little checking of the web documentation it was a matter of a few minutes with a text editor modifying the以下文件(所有路径都相对于下载期间创建的 pygame 目录):

gedit build/lib.linux-x86_64-3.2/pygame/colordict.py 
gedit build/lib.linux-x86_64-3.2/pygame/tests/test-utils/png.py 
gedit build/lib.linux-x86_64-3.2/pygame/examples/movieplayer.py 

The line numbers from the compiler error messages are great for giving you where to start.编译器错误消息中的行号非常适合为您提供从哪里开始。 The things to look out for are:需要注意的事项是:

1 remove all references to u"xxxx" colours
2 use Python3 syntax for exceptions
3 change all print commands to Python3 equivalents

Then re-issue the final compilation command:然后重新发出最终的编译命令:

sudo python3 setup.py install

If you miss one or two or get it wrong, just keep going round the loop editing and re-compiling till it works.如果你错过了一两个或弄错了,只需继续循环编辑并重新编译直到它工作。

BTW I deliberately did not give details of the compiler messages, because I expect they will depend on the current build you download.顺便说一句,我故意没有提供编译器消息的详细信息,因为我希望它们将取决于您下载的当前版本。 The files I needed to change were for version '1.9.2pre' downloaded as of the date on this post.我需要更改的文件是截至本文发布之日下载的“1.9.2pre”版本。

Just use the below command to install pygame for Python3.只需使用以下命令为 Python3 安装 pygame。 I could install pygame correctly on Ubuntu 16.04 and Python Python 3.5.2. I could install pygame correctly on Ubuntu 16.04 and Python Python 3.5.2.

pip3 install pygame pip3 安装 pygame

It's because installing the python-pygame package installs it for the default version of Python on your system, 2.6.5 in this case.这是因为在您的系统上安装python-pygame package 会为默认版本的 Python 安装它,在这种情况下为 2.6.5。 You should download the pygame package and use setup.py to install it in 3.1.2.您应该下载 pygame package 并使用 setup.py 在 3.1.2 中安装它。

The python-pygame package is only compiled for python2.6 and python2.7 where I am. python-pygame package 仅针对我所在的 python2.6 和 python2.7 编译。 You'll have to install it again, possibly from a python3 branch of the source.您必须再次安装它,可能来自源代码的 python3 分支。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM