2010-01-21 31 views
6

Tôi chỉ muốn xây dựng nó trên máy phát triển của mình - cài đặt nhị phân từ Python.org vẫn còn 32 bit và cài đặt phần mở rộng (MySQLdb, ví dụ) là lái xe cho tôi hạt với cố gắng tìm ra các cờ thích hợp cho mỗi và mọi phần mở rộng.Cách xây dựng Python 64 bit trên OS X 10.6 - CHỈ 64 bit, không có vô nghĩa Universal

Làm rõ: Tôi không thay thế các hệ thống Python, tôi chỉ cần cài đặt nhị phân Python.org vào vị trí bình thường của nó tại/Library/..., không/System/Library/....

Mọi thứ khác dường như xây dựng 64 bit theo mặc định và mặc định là Python 2.6.1 là 64 bit (trước khi tôi thay thế nó bằng Python.org xây dựng để tìm ra thay thế trực tiếp) `

Tôi chỉ muốn một bản 64 bit sẽ chạy trên một máy của tôi mà không có bất kỳ cruft.

Có ai có câu trả lời đơn giản không?

Cảm ơn nhiều, [email protected]

Trả lời

11

Nếu bạn tình cờ được sử dụng MacPorts, nó đơn giản như xác định các biến thể mà nói nó không phải để biên dịch Universal, như vậy:

sudo port install python26 -universal 

Bạn có thể xem các biến thể có sẵn bằng cách sử dụng variants lệnh:

% port variants python26               
python26 has the variants: 
    darwin: Platform variant, selected automatically 
    no_tkinter: Disable Tkinter support, which will break IDLE 
    ucs4: Enable support for UCS4 
    universal: Build for multiple architectures 

Như bạn có thể thấy, theo mặc định trên 10,6 nó xây dựng các darwin biến, trong đó xây dựng x86_64 CHỈ:

% cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/ 
% file python2.6 
python2.6: Mach-O 64-bit executable x86_64 

Hãy so sánh để mặc định python nhị phân, mà là phổ quát:

% file /usr/bin/python 
/usr/bin/python: Mach-O universal binary with 3 architectures 
/usr/bin/python (for architecture x86_64):  Mach-O 64-bit executable x86_64 
/usr/bin/python (for architecture i386):  Mach-O executable i386 
/usr/bin/python (for architecture ppc7400):  Mach-O executable ppc 

Nếu bạn không sử dụng MacPorts, tôi đề nghị bạn xem xét nó. Nó tiết kiệm rất nhiều thời gian và đau khổ phải tự cấu hình và biên dịch mọi thứ, và có một giao diện GUI tuyệt vời được gọi là Porticus. Tất cả nguồn mở và miễn phí, tất nhiên!

p.s. Không bao giờ thay thế hoặc đổi tên các tệp nhị phân hệ thống ban đầu! Như đã đề cập trong các ý kiến ​​của Ned Daily:

"Hoặc là quản lý quyền truy cập vào các mục đích dụ python bằng cách thay đổi thứ tự tìm kiếm trong môi trường PATH biến hoặc, nếu cần thiết, sử dụng một đường dẫn tuyệt đối như/opt /local/bin/python2.6 ".

+0

Có vẻ như cờ chung * nên * biên dịch "Phổ" --- nếu có, bạn có thể muốn chỉnh sửa dòng đầu tiên. – telliott99

+0

Cảm ơn! Tôi nhận được một vài hệ điều hành OS X sớm hoàn toàn bị cắt xén với các phiên bản trước đó của cả Fink và MacPorts và đã tránh xa kể từ đó. Tôi bắt đầu cảm thấy như OS X giống như một người phụ nữ bảo trì xinh đẹp nhưng rất cao; tốt đẹp để xem và chơi với, nhưng khi có việc phải làm, nhiều trở ngại hơn là giúp đỡ. – ssteinerX

+0

@ telliot99 Một sẽ chỉ định '+ universal' để bao gồm nó,' -universal' sẽ loại trừ nó. Tuy nhiên, nó bị loại trừ theo mặc định, trên 10.6 vì vậy nó sẽ không liên quan. – jathanism

5

Giải pháp đơn giản nhất là kéo tất cả mọi thứ bạn cần từ MacPorts:

$ sudo port selfupdate 
$ sudo port install python26 +no_tkinter -universal py26-mysqldb -universal 

Đó sẽ cài đặt python2.6, adapter MySQLdb, và các thư viện client MySQL cần thiết. Tôi đề nghị thêm các biến thể no_tkinter trừ khi bạn thực sự cần tkinter; đã có một số vấn đề với phiên bản MacPorts của Tk trên 10.6.

EDIT: Lưu ý, MacPorts Python sẽ được cài đặt là /opt/local/bin/python2.6. Bạn có thể cần phải điều chỉnh shell của bạn $ PATH để đảm bảo/opt/local/bin nằm trên nó trước/usr/local/bin và/usr/bin.Nếu bạn muốn/opt/local/bin/python để tham khảo các python2.6 MacPorts, làm các việc trên và:

$ sudo port install python_select 
$ sudo python_select python26 
+0

Tôi cài đặt MacPorts, và Python và mysqldb và damn nếu tôi không nhận được cùng một flippin 'lỗi tôi đã cố gắng để xây dựng nó bản thân mình. django.core.exceptions.ImproperlyConfigured: Lỗi khi tải mô-đun MySQLdb: mô-đun động không xác định hàm init (init_mysql) Cảm ơn bạn đã trợ giúp, bây giờ ... làm cách nào để gỡ cài đặt MacPorts? – ssteinerX

+0

Tôi nghĩ rằng tôi có một hệ thống rất, rất rối rắm. Một số phần đến đúng từ virtualenv tôi tạo ra, các phần khác đến từ cài đặt Python.org, yikes. Tất cả dường như rất quen thuộc với những trải nghiệm trước đây của tôi với cả MacPorts và Fink. Có vẻ như tôi phải gỡ cài đặt các công cụ nguồn/Python.org trước đây hoàn toàn bao gồm cả chính MySQL. Oh Boy. – ssteinerX

+0

Bạn có chắc chắn trường hợp Django của bạn đang sử dụng MacPorts Python2.6 không? Nếu bạn đã đề cập Django, tôi đã có thể đề nghị bạn cũng kéo nó từ MacPorts là tốt: 'sudo cổng cài đặt py26-django'. Điều tương tự cho py26-virtualenv hoặc các gói khác. Làm việc cho tôi chạy Django trong chế độ máy chủ phát triển. Nếu bạn đang cố gắng chạy nó dưới Apache, nó trở nên phức tạp hơn. –

3

Khi bạn nhận được 64-bit cài đặt Python sử dụng các phương pháp nêu trên ở trên, tôi cũng tìm thấy điều này blog post by Aaron Meurer hữu ích cho việc xác minh rằng Python là trong thực tế cài đặt như 64-bit. Bài viết cũng nói về việc chạy Python 64 bit cùng với một cài đặt 32 bit, mà tôi đoán là hữu ích cho một số mục đích.

5

Luôn macports ... sheesh

Đây là những gì tôi đã làm:

~: wget http://python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2 
~: tar xjf Python-2.6.5.tar.bz2 
~: cd Python-2.6.5 
~: ./configure ./configure MACOSX_DEPLOYMENT_TARGET=10.6 --enable-framework --with-universal-archs="64-bit" CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" 
~: make -j6 
~: sudo make install 

Có thể là một dự phòng nhỏ trên những thứ FLAGS, nhưng nó làm việc.

+0

Thú vị. Đối với tôi, như tôi mong đợi, bước cấu hình sẽ xuất hiện với các tham số trong ví dụ của bạn. Trên thực tế, bạn không cần bất kỳ FLAGS hoặc '--with-universal-archs' khi xây dựng trên hệ thống 10.6 có khả năng 64 bit. Nhưng một khi bạn nhận được đến cùng, có thể bạn sẽ thấy rằng một hoặc nhiều mô-đun thư viện chuẩn không xây dựng chính xác, như '_tkinter' hoặc' _curses_panel' hay cái gì khác. Sự vắng mặt của họ có thể không phải là kết thúc của thế giới để bạn sử dụng nhưng đây là * một trong những lý do tại sao tôi khuyên bạn nên sử dụng trình cài đặt nhị phân hoặc trình quản lý gói, như MacPorts: để có được các chi tiết nhỏ ngay. –

+0

Ahhh tôi hiểu rồi. Vâng, tôi không có vấn đề với _curses_panel, nhưng đó có thể là vì tôi cũng tự xây dựng bản thân mình. Và tôi cũng không bao giờ cần tkinter. – rossipedia

Các vấn đề liên quan