CẬP NHẬT : 2018-07-06
Bài này bây giờ đã gần 5 tuổi! Python-2.7 sẽ ngừng nhận các bản cập nhật chính thức từ python.org vào năm 2020 . Ngoài ra, Python-3.7 đã được phát hành . Hãy xem Python-Future về cách làm cho mã Python-2 của bạn tương thích với Python-3. Để cập nhật conda, tài liệu hiện khuyên bạn nên sử dụng conda update --all
trong từng môi trường conda của mình để cập nhật tất cả các gói và tệp thực thi Python cho phiên bản đó. Ngoài ra, vì họ đã đổi tên thành Anaconda, tôi không biết liệu các khóa đăng ký Windows có còn như cũ không.
CẬP NHẬT : 2017-03-24
Không có bản cập nhật nào cho Python (x, y) kể từ tháng 6 năm 2015, vì vậy tôi nghĩ sẽ an toàn khi cho rằng nó đã bị bỏ rơi.
CẬP NHẬT : 2016-11-11
Như @cxw bình luận bên dưới , những câu trả lời này dành cho cùng một phiên bản bit và theo phiên bản bit, ý tôi là 64 bit so với 32 bit. Ví dụ: những câu trả lời này sẽ áp dụng cho việc cập nhật từ Python-2.7.10 lên 64-bit Python-2.7.11, tức là : cùng một phiên bản bit. Mặc dù có thể cài đặt hai phiên bản bit khác nhau của Python với nhau, nhưng nó sẽ yêu cầu một số hack, vì vậy tôi sẽ lưu bài tập đó cho người đọc. Nếu bạn không muốn hack, tôi khuyên bạn rằng nếu chuyển đổi phiên bản bit, trước tiên hãy xóa phiên bản bit khác.
CẬP NHẬT : 2016-05-16
- Anaconda và MiniConda có thể được sử dụng với cài đặt Python hiện có bằng cách vô hiệu hóa các tùy chọn để thay đổi Windows
PATH
và Registry. Sau khi giải nén, hãy tạo một liên kết tượng trưng conda
trong bin
hoặc cài đặt conda từ PyPI. Sau đó, tạo một symlink tên là conda-activate
để activate
trong thư mục bin gốc Anaconda / Miniconda. Bây giờ Anaconda / Miniconda giống như Ruby RVM. Chỉ cần sử dụng conda-activate root
để kích hoạt Anaconda / Miniconda.
- Python di động không còn được phát triển hoặc bảo trì.
TL; DR
- Sử dụng Anaconda hoặc miniconda , sau đó chỉ cần thực hiện
conda update --all
để giữ cho mỗi môi trường conda được cập nhật,
- cùng lớn phiên bản chính thức Python ( ví dụ 2.7.5), chỉ cần cài đặt trên cũ ( ví dụ 2.7.4),
- phiên bản chính khác nhau của Python chính thức ( ví dụ 3.3), cài đặt song song với cũ, đặt đường dẫn / liên kết để trỏ đến chiếm ưu thế ( ví dụ 2.7), lối tắt sang khác ( ví dụ trong BASH
$ ln /c/Python33/python.exe python3
).
Câu trả lời phụ thuộc:
Nếu OP có 2.7.x và muốn cài đặt phiên bản 2.7.x mới hơn, thì
- Nếu sử dụng trình cài đặt MSI từ trang web Python chính thức , chỉ cần cài đặt trên phiên bản cũ, trình cài đặt sẽ đưa ra cảnh báo rằng nó sẽ xóa và thay thế phiên bản cũ hơn; tìm kiếm trong "chương trình đã cài đặt" trong "bảng điều khiển" trước và sau khi xác nhận rằng phiên bản cũ đã được thay thế bằng phiên bản mới; các phiên bản mới hơn của 2.7.x tương thích ngược nên điều này hoàn toàn an toàn và do đó IMHO nhiều phiên bản 2.7.x không bao giờ cần thiết.
- Nếu xây dựng từ nguồn, thì có lẽ bạn nên xây dựng trong một thư mục mới, sạch sẽ, rồi chỉ đường dẫn đến bản dựng mới sau khi vượt qua tất cả các thử nghiệm và bạn tự tin rằng nó đã được xây dựng thành công, nhưng bạn có thể muốn giữ lại bản cũ xây dựng xung quanh vì xây dựng từ nguồn đôi khi có thể có vấn đề. Xem hướng dẫn của tôi để xây dựng Python x64 trên Windows 7 với SDK 7.0 .
- nếu cài đặt từ một bản phân phối như Python (x, y) , hãy xem trang web của họ. Python (x, y) đã bị bỏ rơi.
Tôi tin rằng các bản cập nhật có thể được xử lý từ bên trong Python (x, y) với trình quản lý gói của chúng, nhưng các bản cập nhật cũng được đưa vào trang web của chúng . Tôi không thể tìm thấy một tài liệu tham khảo cụ thể để có lẽ người khác có thể nói chuyện này. Tương tự như ActiveState và có lẽ là Enth think, Python (x, y) nói rõ rằng nó không tương thích với các bản cài đặt khác của Python:
Bạn nên gỡ cài đặt mọi bản phân phối Python khác trước khi cài đặt Python (x, y)
- Enth think Canopy sử dụng MSI và sẽ cài đặt vào
Program Files\Enthought
hoặc home\AppData\Local\Enthought\Canopy\App
cho tất cả người dùng hoặc cho mỗi người dùng tương ứng. Cài đặt mới hơn được cập nhật bằng cách sử dụng công cụ cập nhật tích hợp. Xem tài liệu của họ .
- ActiveState cũng sử dụng MSI để cài đặt mới hơn có thể được cài đặt trên các cài đặt cũ hơn. Xem ghi chú cài đặt của họ .
Các cài đặt Python 2.7 khác trên Windows, ActivePython 2.7 không thể cùng tồn tại với các cài đặt Python 2.7 khác (ví dụ: bản dựng Python 2.7 từ python.org). Gỡ cài đặt mọi cài đặt Python 2.7 khác trước khi cài đặt ActivePython 2.7.
- Sage khuyên bạn nên cài đặt nó vào một máy ảo và cung cấp tệp hình ảnh Oracle VirtualBox có thể được sử dụng cho mục đích này. Nâng cấp được xử lý nội bộ bằng cách ban hành
sage -upgrade
lệnh.
Anaconda có thể được cập nhật bằng cách sử dụng conda
lệnh :
conda update --all
Anaconda / Miniconda cho phép người dùng tạo môi trường để quản lý nhiều phiên bản Python bao gồm Python-2.6, 2.7, 3.3, 3.4 và 3.5. Các bản cài đặt Anaconda / Miniconda gốc hiện đang dựa trên Python-2.7 hoặc Python-3.5.
Anaconda có thể sẽ phá vỡ mọi cài đặt Python khác. Cài đặt sử dụng trình cài đặt MSI.
[ CẬP NHẬT : 2016-05-16] Anaconda và Miniconda hiện sử dụng trình .exe
cài đặt và cung cấp các tùy chọn để vô hiệu hóa các PATH
thay đổi của Windows và Registry.
Do đó, Anaconda / Miniconda có thể được cài đặt mà không làm gián đoạn cài đặt Python hiện có tùy thuộc vào cách cài đặt và các tùy chọn đã được chọn trong khi cài đặt. Nếu trình .exe
cài đặt được sử dụng và các tùy chọn thay đổi Windows PATH
và Registry không bị tắt, thì mọi cài đặt Python trước đó sẽ bị tắt , nhưng chỉ cần gỡ cài đặt cài đặt Anaconda / Miniconda sẽ khôi phục cài đặt Python gốc, ngoại trừ các Python\PythonCore
phím Windows Registry .
Anaconda / Miniconda làm các chỉnh sửa registry sau đây không phụ thuộc vào tùy chọn cài đặt: HKCU\Software\Python\ContinuumAnalytics\
với các phím sau: Help
, InstallPath
, Modules
và PythonPath
- quan chức Python đăng ký các phím này quá, nhưng dưới Python\PythonCore
. Ngoài ra thông tin gỡ cài đặt được đăng ký cho Anaconda \ Miniconda. Trừ khi bạn chọn tùy chọn "Đăng ký với Windows" trong khi cài đặt, nó sẽ không tạo PythonCore
, vì vậy các tích hợp như Python Tools cho Visual Studio không tự động nhìn thấy Anaconda / Miniconda. Nếu tùy chọn đăng ký Anaconda / Miniconda được bật, thì tôi nghĩ rằng các khóa Windows Windows Registry hiện tại của bạn sẽ bị thay đổi và việc gỡ cài đặt có thể sẽ không khôi phục chúng.
- Các bản cập nhật WinPython , tôi nghĩ, có thể được xử lý thông qua Bảng điều khiển WinPython .
- PortablePython là không còn được phát triển .
Nó không có phương pháp cập nhật. Có thể cập nhật có thể được giải nén vào một thư mục mới và sau đó App\lib\site-packages
và App\Scripts
có thể được sao chép vào cài đặt mới, nhưng nếu điều này không làm việc sau đó cài đặt lại tất cả các gói có thể được cần thiết. Sử dụng pip list
để xem những gói đã được cài đặt và phiên bản của chúng. Một số đã được cài đặt bởi PortablePython. Sử dụng easy_install pip
để cài đặt pip nếu nó chưa được cài đặt.
Nếu OP có 2.7.x và muốn cài đặt một phiên bản khác, vd <= 2.6.x hoặc> = 3.xx, thì việc cài đặt các phiên bản khác nhau cạnh nhau là ổn. Bạn phải chọn phiên bản Python (nếu có) để liên kết với *.py
các tệp và bạn muốn trên đường dẫn của mình, mặc dù bạn sẽ có thể thiết lập hệ vỏ với các đường dẫn khác nhau nếu bạn sử dụng BASH . AFAIK 2.7.x tương thích ngược với 2.6.x, do đó không cần cài đặt song song IMHO, tuy nhiên Python-3.xx không tương thích ngược, vì vậy tôi khuyên bạn nên đưa Python-2.7 vào đường dẫn của bạn và có Python-3 là một phiên bản tùy chọn bằng cách tạo một lối tắt đến tệp thực thi của nó được gọi là python3 (đây là một thiết lập phổ biến trên Linux). Đường dẫn cài đặt mặc định Python chính thức trên Windows là
- C: \ Python33 cho 3.3.x (mới nhất 2013-07-29)
- C: \ Python32 cho 3.2.x
- & c.
- C: \ Python27 cho 2.7.x (mới nhất 2013-07-29)
- C: \ Python26 cho 2.6.x
- & c.
Nếu OP không cập nhật Python mà chỉ cập nhật các gói, họ có thể muốn xem xét virtualenv để tách các phiên bản khác nhau của các gói dành riêng cho các dự án phát triển của họ. Pip cũng là một công cụ tuyệt vời để cập nhật các gói. Nếu các gói sử dụng trình cài đặt nhị phân, tôi thường gỡ cài đặt gói cũ trước khi cài đặt gói mới.
Tôi hy vọng điều này sẽ làm sáng tỏ bất kỳ sự nhầm lẫn.