2010-03-30 33 views
49

Có tài liệu chính thức nào trên trang web Python ở đâu đó, về cách cài đặt và chạy nhiều phiên bản Python trên cùng một máy trên Linux không?Nhiều phiên bản Python chính thức trên cùng một máy?

Tôi có thể tìm thấy hàng loạt bài đăng và câu trả lời trên blog, nhưng tôi muốn biết liệu có cách chính thức "chuẩn" để thực hiện việc này không?

Hoặc tất cả điều này phụ thuộc vào hệ điều hành?

Trả lời

55

Tôi nghĩ nó hoàn toàn độc lập. Chỉ cần cài đặt chúng, sau đó bạn có các lệnh, ví dụ: /usr/bin/python2.5/usr/bin/python2.6. Liên kết /usr/bin/python với tài khoản bạn muốn sử dụng làm mặc định.

Tuy nhiên, tất cả thư viện đều nằm trong các thư mục riêng biệt (được đặt tên theo phiên bản).

Nếu bạn muốn biên dịch phiên bản bằng tay, đây là từ các tập tin readme của mã nguồn Python:

Cài đặt nhiều phiên bản

Trên các hệ thống Unix và Mac nếu bạn có ý định cài đặt nhiều phiên bản của Python sử dụng cùng tiền tố cài đặt (đối số --prefix cho tập lệnh cấu hình ), bạn phải cẩn thận rằng tệp thực thi python chính của bạn không phải là được ghi đè bằng cách cài đặt phiên bản khác. Tất cả các tệp và thư mục được cài đặt bằng cách sử dụng "make altinstall" chứa phiên bản chính và nhỏ và do đó có thể sống song song. "make install" cũng tạo ra một số tiền là $ {prefix} /bin/pythonX.Y. Nếu bạn có ý định để cài đặt nhiều phiên bản sử dụng cùng một tiền tố, bạn phải quyết định phiên bản nào (nếu có) là phiên bản "chính" của bạn. Cài đặt phiên bản đó bằng cách sử dụng "cài đặt". Cài đặt tất cả các phiên bản khác bằng cách sử dụng "make altinstall". Ví dụ, nếu bạn muốn cài đặt Python 2.5, 2.6 và 3.0 với 2.6 là phiên bản chính, bạn sẽ thực thi "make install" trong thư mục 2.6 build và "make altinstall" trong các thư mục khác.

+3

Cảm ơn, "cài đặt" trên tiểu học và "thực hiện cài đặt alt" trên thứ cấp đã làm cho nó rõ ràng. – drozzy

+4

Bất kỳ cách nào đúng để chia sẻ thư viện giữa các phiên bản? Giả sử tôi có MySQLdb cho 2.6, sau đó cài đặt 2.7. làm thế nào để làm cho MySQLdb có sẵn cho 2,7 quá? – romeroqj

+0

Tất cả thông tin bạn cung cấp là dành cho Unix/Linux và Mac OS, vì vậy rõ ràng không phải là "hoàn toàn độc lập" của hệ điều hành, như OP yêu cầu. Đối với Windows, quá trình này khá khác nhau nhưng không kém phần dễ dàng. – wwwayne

0

Phụ thuộc nhiều nhất vào hệ thống phân phối gói bạn sử dụng. Ví dụ, với MacPorts, bạn có thể cài đặt nhiều gói Python và sử dụng tiện ích pyselect để chuyển đổi mặc định giữa chúng một cách dễ dàng. Tại mọi thời điểm, bạn có thể gọi các trình thông dịch Python khác nhau bằng cách cung cấp đường dẫn đầy đủ và bạn có thể liên kết với tất cả các thư viện Python và các tiêu đề bằng cách cung cấp đường dẫn đầy đủ cho những người đó.

Vì vậy, về cơ bản, bất kể bạn cài đặt phiên bản nào, miễn là bạn giữ riêng cài đặt, bạn sẽ có thể chạy riêng chúng.

+0

Hệ thống phân phối gói là gì? – drozzy

+0

@drozzy: Ví dụ RPM được sử dụng bởi OpenSuse hoặc apt được sử dụng bởi các bản phân phối dựa trên Debian hoặc cổng được Gentoo sử dụng. Về cơ bản, nó là một công cụ để cài đặt phần mềm. –

20

Trên Windows, chúng được cài đặt để phân tách các thư mục, "C: \ python26" và "C: \ python31", nhưng tệp thực thi có cùng tên "python.exe".

Tôi đã tạo một thư mục "C: \ python" khác chứa "python.bat" và "python3.bat" đóng vai trò là trình bao bọc cho "python26" và "python31" tương ứng và thêm "C: \ python" vào biến môi trường PATH.

Điều này cho phép tôi nhập python hoặc python3 trong trình bao bọc Python .bat của tôi để bắt đầu trình tôi muốn.

Trên Linux, bạn có thể sử dụng mẹo #! để chỉ định phiên bản bạn muốn tập lệnh sử dụng.

+0

Điều gì cần thêm vào các tệp .bat? – Aidis

+0

Sẽ không upvote câu trả lời này chỉ vì nó rất đặc trưng cho cửa sổ và câu hỏi liên quan đến Linux, nếu không thì thông tin tuyệt vời. –

+2

Người dùng không còn tồn tại nữa, tôi thực sự muốn có tập tin thực thi – Wargog

3

Cách cài đặt các phiên bản Python khác nhau thực sự phụ thuộc vào hệ điều hành.

Tuy nhiên, nếu bạn đang sử dụng Linux, bạn có thể sử dụng công cụ như pythonbrew hoặc pythonz để giúp bạn dễ dàng quản lý và chuyển đổi giữa các phiên bản khác nhau.

+0

Tôi đã cài đặt trên máy mac có cấu hình/thực hiện cài đặt. Không có vấn đề cho đến nay. – Evgeny

+0

'pyenv' hoạt động tốt với tôi trên Ubuntu: https://github.com/pyenv/pyenv – JHS

1

Nếu bạn cần phải cài đặt nhiều phiên bản của Python (bên cạnh một trong những chính) trên Ubuntu/Mint: (nên làm việc tương tự như trên Unixs khác.)

1) Cài đặt gói cần thiết cho việc mã nguồn biên soạn

$ sudo apt-get install build-essential checkinstall 
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev 

2) Tải về và giải nén mong muốn Python phiên bản

Download Python Source for Linux như tarball và di chuyển nó đến /usr/src.

Trích xuất gói đã tải xuống tại chỗ. (thay thế 'x với phiên bản tải về của bạn)

$ sudo tar xzf Python-x.x.x.tgz 

3) Biên dịch và cài đặt Python Nguồn

$ cd Python-x.x.x 
$ sudo ./configure 
$ sudo make altinstall 

bin Python mới của bạn bây giờ nằm ​​ở /usr/local/bin. Bạn có thể thử nghiệm phiên bản mới:

$ pythonX.X -V 
Python x.x.x 
$ which pythonX.X 
/usr/local/bin/pythonX.X 

# Pip is now available for this version as well: 
$ pipX.X -V 
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X) 
Các vấn đề liên quan