2010-09-02 22 views
8

Trên trang trợ giúp nàyTại sao tôi không thể thay đổi con trăn mặc định của hệ thống theo cách mà Apple nói tôi có thể?

http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/python.1.html

Apple nói:

Thay đổi mặc định PYTHON

Sử dụng

 % defaults write com.apple.versioner.python Version 2.5 

sẽ làm cho phiên bản 2.5 mặc định người dùng khi chạy cả hai lệnh python và pythonw (phiên bản là tên nội bộ của phần mềm lựa chọn phiên bản được sử dụng).

Điều này đơn giản là không hiệu quả!

tppllc-Mac-Pro:~ swirsky$ python --version 
Python 2.7 
tppllc-Mac-Pro:~ swirsky$ defaults write com.apple.versioner.python Version 2.5 
tppllc-Mac-Pro:~ swirsky$ python --version 
Python 2.7 

và cũng như việc chuyển sang làm 32-bit python mặc định

64-BIT HỖ TRỢ

Version 2.6 hỗ trợ thực hiện 64-bit (đó là theo mặc định). Phiên bản 2.5 chỉ hỗ trợ thực thi 32 bit.

Giống như phiên bản Python, lệnh python có thể chọn giữa 32 và thực thi 64 bit (khi cả hai đều khả dụng). Sử dụng:

 % defaults write com.apple.versioner.python Prefer-32-Bit -bool yes 

để làm cho 32-bit thực hiện mặc định sử dụng (sử dụng /Library/Preferences/com.apple.versioner.python sẽ thiết lập mặc định cho toàn hệ thống). Biến môi trường VERSIONER_PYTHON_PREFER_32_BIT thể cũng được sử dụng (có ưu tiên hơn các tập tin ưu tiên): vỏ

 % export VERSIONER_PYTHON_PREFER_32_BIT=yes # 

Bourne-like hoặc

 % setenv VERSIONER_PYTHON_PREFER_32_BIT yes # 

C giống như vỏ

tôi m xuống một rathole ở đây. Tôi đang cố gắng để có được wxpython để chạy. Nhưng nó sẽ không chạy trên Apple Python 2.7 vì không có hỗ trợ carbon 64 bit, và hỗ trợ ca cao chưa hoàn thành trong wx.

=== CẬP NHẬT ===

Cảm ơn tất cả sự giúp đỡ của bạn! Bí ẩn đã được giải quyết. Một điều khiến tôi bối rối là tôi không gặp rắc rối khi chạy wxpython (32-bit) trên máy tính xách tay của tôi (một macbook macbook i5 gần đây), nhưng nó sẽ không chạy trên máy tính để bàn của tôi (một i7 mac pro gần đây).

Cả hai đều có python 2.7 và tôi giả định nó giống nhau. Nhưng không phải vậy!

Mac Pro có x86_64 xây dựng

tppllc-Mac-Pro:~ swirsky$ file `which python` 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 3 architectures 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386): Mach-O executable i386 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture ppc7400): Mach-O executable ppc 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64 

và máy tính xách tay không:

thrilllap-2:thrillscience swirsky$ file `which python` 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 2 architectures 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture ppc): Mach-O executable ppc 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386): Mach-O executable i386 

tôi sẽ cài đặt lại một mà không có phiên bản x86_64 trên máy tính để bàn của tôi, như Tôi chưa cần hỗ trợ 64 bit.

+0

Xin chào, tôi có thể cài đặt python i386 bằng cách nào? – Believe2014

Trả lời

3

Tôi cho rằng phiên bản python được giao với OS X 10.6 là 2.6. Thực tế là dòng lệnh của bạn nói rằng nó có nghĩa là 2,7, nếu tôi hiểu nó một cách chính xác, bạn đã cài đặt 2,7 bằng một số phương tiện khác. (Có thể là macports, fink hoặc được biên dịch trực tiếp.) Những con trăn không do Apple cung cấp thường không hỗ trợ hệ thống phiên bản của Apple. Bạn có thể chạy như sau?

$ which python 

Có phải nói /usr/bin/python?

+1

Thật vậy, nó cũng có thể được thiết lập trong một trong các tệp dấu chấm của người dùng. Hãy thử 'echo $ PATH' để xem Python 2.7 có ở đâu đó không? –

+0

Nếu chạy 'mà python' không trả về '/ usr/bin/python' giải pháp là gì? – mrsoltys

12

defaults write com.apple.versioner.pythonVERSIONER_PYTHON_PREFER_32_BIT những thay đổi của Apple phát triển và áp dụng chỉ với Apple cung cấp /usr/bin/python trong OS X 10.6 (Python 2.6.1). (CẬP NHẬT: Điều này cũng áp dụng cho OS X 10.7 Lion.) Bạn có thể đã cài đặt một Python 2.7 bằng cách sử dụng một trong những trình cài đặt python.org. Có hai 2,7 trình cài đặt hiện có sẵn từ python.org, một (cho 10.5 trở lên) bao gồm cả hỗ trợ 32 bit và 64 bit. Thứ hai (cho 10.3 và cao hơn, bao gồm 10.6) chỉ 32 bit. Có lẽ, bạn đã cài đặt cái đầu tiên. Để có nó chạy trong chế độ 32-bit, bạn có thể gọi nó bằng cách sử dụng lệnh arch:

$ arch -i386 python2.7 

Hoặc, nếu bạn luôn muốn sử dụng 32-bit, bạn có thể cài đặt lại 2,7 sử dụng trình cài đặt khác. Lưu ý trình cài đặt 64-bit từ python.org là mới trong 2.7. Và, thật không may, có một vài vấn đề với nó, cụ thể là Tkinter và các chương trình sử dụng nó (bao gồm IDLE) không thành công trên OS X 10.6. Điều đó sẽ được khắc phục trong bản cập nhật bảo trì. Nếu bạn cần chúng trên 10.6, bạn chỉ cần cài đặt trình cài đặt chỉ 32 bit.

Rất có thể lý do lệnh python giờ gọi 2.7 là trình cài đặt python.org cập nhật hồ sơ đăng nhập của bạn, như .bash_profile để đặt thư mục bin khung đầu tiên trên tìm kiếm vỏ PATH.

$ echo $PATH 
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin: # ... 
$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ /usr/bin/python 
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> ^D 
$ python 
Python 2.7 (r27:82508, Jul 3 2010, 21:12:11) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> ^D 
$ python -c 'import sys;print("%x"%sys.maxint)' 
7fffffffffffffff 
$ arch -x86_64 python -c 'import sys;print("%x"%sys.maxint)' 
7fffffffffffffff 
$ arch -i386 python -c 'import sys;print("%x"%sys.maxint)' 
7fffffff 
Các vấn đề liên quan