2011-06-30 17 views
6

私は本を読んでいますPythonとPygameを使用してコンピュータサイエンス入門 Paul Craven(ノート:無料でオンラインで合法的に入手できます)この本では、彼はPython 3.1.3とPygame 1.9.1の組み合わせを使用しています。私のLinux Ubuntuマシンでは、Python 3.1.2を持っていますが、sudo apt-get python-pygame(バージョン1.9.1)をインストールしても、Python 3.1.2はPygameをインポートできません。大騒ぎなしUbuntuにPython 3.1.2の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輸入して、しかし、

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 
>>> 

あなたは(彼の本でWindowsを使用教授クレイブン)のLinux/UbuntuのPythonの3.1.2のためのすべての問題を知っていますか?どのようにPygame 1.9.1はPython 3.1.3では動作しましたが、3.1.2では動作しませんでしたか?

ありがとうございます。 ( - 、)

+0

私はこの種のものに 'pip install'を使う傾向があります。それはもっと良いです –

答えて

-1

これは、python-pygameパッケージをインストールすると、デフォルトのバージョンのPython(この場合は2.6.5)用にインストールされるからです。 pygameパッケージをダウンロードし、setup.pyを使用して3.1.2にインストールする必要があります。

+3

または手動で2.6.5のライブラリのファイルを3.1.2に移動することができます。 –

+0

@DKGasser私はどのファイルをコピーする必要がありますか? usr/include/python2.6からフォルダnumpyとpygame usr/include/python3.1をコピーしましたが、Python3ではまだPygameをインポートできません:C。 ( 'python setup.py'を実行すると、インストールがgccエラーで大量に終了しました。なぜでしょうか。) – skytreader

+0

これは、実際には/usr/lib/python2.6/dist- packages/pygame'を '/ usr/lib/python3/dist-packages /'にコピーします。しかし、Python3でpygameをインポートすると、私に 'ImportError:/usr/lib/python3.1/dist-packages/pygame/base.so:未定義シンボル:PyString_FromString'が与えられます。誰にでも助けますか? :| – skytreader

-1

python-pygameパッケージは、python2.6とpython2.7のためだけにコンパイルされています。おそらくソースのpython3ブランチから再度インストールする必要があります。

3

私は古いポストを再オープンするのは嫌いですが、私はPythonをPythonのバージョンでインストールするのが最も難しくありました。これはUbuntuのデフォルトビルドではありませんでした。私はこれはこれを試すために次の不幸な魂を助けたいと考えている

Install python3.1 and pygame1.9.1 in Ubuntu

:だから私はどのようにこのチュートリアルを作成しました/。 Pythonの3の

+0

こんにちは。私はすべての依存関係をインストールしています。しかし、 'python3.1 setup.py build'を実行しようとすると、次のメッセージが表示されます: ' src/imageext.c:47: src/pygame.h:75:20:error: Python.h:No such file or directory' Python.hだけが適切にリンクされていれば、他のエラーの長いリストが続きます。これまでにこの問題が発生しましたか?ありがとう。 – skytreader

+0

それでも、デフォルトのPythonインストールではうまくいきます。 – skytreader

9

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 

(あなたは最新バージョンを試して-u 01b2cb16dc17を削除することができる。01b2cb16dc17は私のために働いた。)

0

私は@Sørenの方法に従ったが、-uの数字は付けなかった。

最後の行でコンパイルエラーが発生したのは、Python 2とPython 3の構文とUnicodeの違いによるものでしたが、Webドキュメントを少し調べるだけで、以下のファイル(すべてのパスは、ダウンロード時に作成した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 

行番号はどこから始めればあなたを与えるための素晴らしいです。外を見るためのものがあります:

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

次に再発行し、最終的なコンパイルコマンド:

sudo python3 setup.py install 

あなたは、1つまたは2つのを見逃したり、それは間違っている、ちょうどループ編集一周続ける取得した場合それが動作するまで再コンパイルします。

私は、あなたがダウンロードした現在のビルドに依存すると予想しているので、私は意図的にコンパイラのメッセージの詳細を教えていませんでした。変更する必要のあるファイルは、この記事の日付時点でダウンロードされたバージョン「1.9.2pre」用です。

関連する問題