Có một con trăn tương đương với 'rvm' của Ruby không?


145

H: Chúng ta có bất cứ thứ gì có chức năng tương đương trong Python với trình quản lý phiên bản Ruby 'rvm' không?


( RVM cho phép bạn dễ dàng chuyển đổi hoàn toàn giữa các phiên bản khác nhau của trình thông dịch ruby các bộ đá quý (mô-đun) khác nhau. tất cả chạy dưới tài khoản người dùng thông thường của bạn.)

Câu trả lời:


94

Vâng, đó là virtualenv cùng với virtualenvwrapper .

cập nhật: bạn có thể cài đặt cả hai cùng một lúc với virtualenv burrito .

Cập nhật : câu trả lời đúng bây giờ có lẽ là pyenv .

Đối với máy tính khoa học, công cụ tương ứng là anaconda .


2
Tôi bối rối. Bạn có thể cài đặt các phiên bản khác nhau của python ở đâu? Có vẻ như chỉ sử dụng phiên bản python của hệ thống.
docwhat

4
Nhưng có cách nào để gói một bản cài đặt Python cụ thể (giả sử, 2.7) với một số trứng nhất định trong một dự án và với một số trứng khác trong một dự án khác không? RVM quản lý tất cả những thứ này một cách liền mạch, và sudolà một điều của quá khứ.
Kyle Wild

4
Virtualenv cho phép tung hứng giữa các phiên bản Python và giữa các bộ trứng khác nhau; nhưng nó sẽ không đối phó với việc biên dịch + cài đặt Python. RVM thực hiện chính xác điều đó cho Ruby. Nếu bạn muốn xây dựng một phiên bản Python cụ thể vì bạn không thể cài đặt nó ra khỏi các gói vì một số lý do, thì bạn muốn kiểm tra pythonbrew thay vào đó (chỉ câu trả lời khác ngay bên dưới).
jpetazzo

3
Tôi không thấy cách này hỗ trợ một số phiên bản của python.
Dogweather

3
RVM đảm nhiệm việc biên dịch trình thông dịch Ruby. Nó cũng cho phép tải xuống những cái được biên dịch trước, nếu có sẵn.
Andrey Mikhaylov - lolmaus

85

Pythonbrew không còn được phát triển. Nhà bảo trì trước đây đề nghị sử dụng "PyEnv" thay vào đó (xem bên dưới) ".

pythonbrew đã đến! http://github.com/utahta/pythonbrew

pyenv: https://github.com/yyuu/pyenv


Thú vị, có thể đáng để thử. Tôi thấy rằng lời gọi lệnh của nó là khá tương tự của để rvm...
Conny

1
Là một người khá thành thạo với rvm, pythonbrew là một làn gió tuyệt đối để làm quen. Cảm ơn vì tiền hỗ trợ!
elmt

1
Cảm ơn rât nhiều. Tôi tin rằng đây là câu trả lời thực sự từ bây giờ.
sayth

Nên thêm tốt để xem pypy và jython được thêm vào danh sách trăn đã biết.
sayth

Không còn nhiều lưu lượng nữa. Điều này vẫn còn đáng xem xét?
Debilski

51

Tôi đã tạo pyenv , một nhánh của rbenv của Ruby và được sửa đổi cho Python. Giống như pythonz, pyenv cũng hỗ trợ Stackless, PyPy và Jython.


6

Theo dõi câu trả lời của hytdsh (gần hai năm sau) ...

pythonz một nhánh của pythonbrew có thêm hỗ trợ cho Stackless, PyPy và Jython.

Nếu bạn thích cách rvm xử lý các trình thông dịch khác nhau, có thể đáng để xem pythonz. Nếu bạn nghiêm túc làm việc với CPython, sự khác biệt sẽ không đáng kể.


5

Tùy chọn, nếu bạn đang sử dụng Macports, bạn có thể sử dụng python_select. Cài đặt python_selectvới:

$ sudo port install python_select

Giả sử python 2.6 và 2.5 đã cài đặt ong qua Macports, bạn có thể chuyển đổi pythons như vậy:

$ sudo python_select python25
=> Selecting version "python25" for python
$ python --version
=> 2.5.5
$ sudo python_select python26
=> Selecting version "python26" for python
$ python --version
=> 2.6.6

0

pyenv 1.2.15 có thể xây dựng và cài đặt Python cho bạn

Có thể điều này không thể có trong phiên bản trước, nhưng khi tôi thử nghiệm trong 1.2.15 tôi nhận thấy pyenv installtùy chọn hoạt động:

pyenv install 3.8.0

Vì vậy, tôi cảm thấy hợp lý khi gọi pyenvmột sự thay thế cho RVM.

Tôi đã đưa ra một ví dụ đầy đủ chi tiết về cách sử dụng của nó tại: apt-get install cho các phiên bản python khác nhau

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.