2011-06-30 58 views
6

Tôi đang đọc sách Giới thiệu về Khoa học Máy tính Sử dụng Python và Pygame bởi Paul Craven (lưu ý: hợp pháp có sẵn để trực tuyến miễn phí). Trong cuốn sách, ông sử dụng một sự kết hợp của Python 3.1.3 và Pygame 1.9.1. Trong máy Linux Ubuntu của tôi, tôi có Python 3.1.2 nhưng ngay cả sau khi sudo apt-get cài đặt python-pygame (phiên bản 1.9.1), Python 3.1.2 không thể import pygame.Cài đặt Pygame cho Python 3.1.2 trong Ubuntu

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 nhập khẩu nó mà không phiền phức, tuy nhiên,

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

Bạn có biết về bất kỳ vấn đề cho Linux/Python 3.1.2 của Ubuntu (GS Craven sử dụng Windows trong cuốn sách của ông)? Làm thế nào để Pygame 1.9.1 làm việc cho Python 3.1.3 nhưng không phải cho 3.1.2?

Cảm ơn mọi con trỏ. (-,)

+0

Tôi có xu hướng sử dụng 'pip install' cho loại công cụ này; nó tốt hơn –

Trả lời

-1

Đó là vì cài đặt gói python-pygame cài đặt nó cho phiên bản mặc định của Python trên hệ thống của bạn, 2.6.5 trong trường hợp này. Bạn nên tải về gói pygame và sử dụng setup.py để cài đặt nó trong 3.1.2.

+3

Hoặc bạn có thể di chuyển các tệp trong thư viện 2.6.5 sang 3.1.2 theo cách thủ công. –

+0

@DKGasser tôi cần sao chép những tệp nào? Từ usr/include/python2.6 Tôi đã sao chép các thư mục đã sao chép một cách khó khăn và pygame usr/include/python3.1 nhưng tôi vẫn không thể nhập pygame trong Python3: C. (Như để làm 'python setup.py', cài đặt chấm dứt với rất nhiều lỗi gcc. Tôi tự hỏi tại sao.) – skytreader

+0

Ok, vì vậy tôi figured rằng tôi thực sự phải sao chép những từ' /usr/lib/python2.6/dist- gói/pygame' thành '/ usr/lib/python3/dist-packages /'. Nhưng vẫn còn, nhập khẩu pygame trong python3 cho tôi 'ImportError: /usr/lib/python3.1/dist-packages/pygame/base.so: undefined symbol: PyString_FromString'. Giúp bất cứ ai? : | – skytreader

-1

Gói python-pygame chỉ được biên dịch cho python2.6 và python2.7 nơi tôi đang ở. Bạn sẽ phải cài đặt lại nó, có thể từ nhánh python3 của nguồn.

3

Tôi ghét mở lại một bài đăng cũ, nhưng tôi đã có thời gian khó khăn nhất khi cài đặt pygame bằng phiên bản python không phải là bản dựng mặc định của Ubuntu. Vì vậy, tôi đã tạo hướng dẫn này/cách:

Install python3.1 and pygame1.9.1 in Ubuntu

Tôi hy vọng điều này giúp các linh hồn không may tiếp theo để thử này.

+0

Xin chào. Tôi đã cài đặt tất cả các phụ thuộc. Tuy nhiên, tôi chạy vào thông báo sau khi tôi cố gắng 'python3.1 setup.py build': ' Trong tệp được bao gồm từ src/imageext.c: 47: src/pygame.h: 75: 20: lỗi: Python.h: Không có tệp hoặc thư mục nào như vậy Tiếp theo là danh sách dài các lỗi khác không nên có nếu chỉ có Python.h được liên kết đúng cách. Bạn đã từng gặp sự cố này chưa? Cảm ơn. – skytreader

+0

Nó vẫn xây dựng tốt cho việc cài đặt Python mặc định, bằng cách này. – skytreader

9

Pygame trên Python 3 vẫn thực nghiệm, nhưng các bước làm việc cho tôi trên 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 

(Bạn có thể loại bỏ các -u 01b2cb16dc17 thử phiên bản mới nhất; 01b2cb16dc17 làm việc cho tôi.)

0

Tôi theo phương pháp của @ Søren, nhưng không có số -u.

Biến chứng duy nhất là một vài lỗi biên dịch ở dòng cuối cùng, tất cả do cú pháp và sự khác biệt unicode giữa Python 2 và Python 3, nhưng với một ít kiểm tra tài liệu web, nó chỉ mất vài phút với soạn thảo văn bản sửa đổi các tập tin sau đây (tất cả các đường dẫn có liên quan đến thư mục pygame tạo trong quá trình tải xuống):

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 

các số dòng từ thông điệp biên dịch lỗi là tuyệt vời cho đem lại cho bạn bắt đầu từ đâu. Những điều để tìm cho ra là:

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

Sau đó phát hành lại lệnh biên soạn thức:

sudo python3 setup.py install 

Nếu bạn bỏ lỡ một hoặc hai hoặc làm cho nó sai, chỉ cần tiếp tục đi vòng quanh chỉnh sửa vòng lặp và biên dịch lại cho đến khi nó hoạt động.

BTW Tôi cố ý không cung cấp chi tiết về các thông điệp của trình biên dịch, vì tôi hy vọng chúng sẽ phụ thuộc vào bản dựng hiện tại bạn tải xuống.Các tệp tôi cần thay đổi là dành cho phiên bản '1.9.2pre' được tải xuống kể từ ngày trên bài đăng này.