Tôi đã cài đặt hai phiên bản Python trên máy của mình (phiên bản 2.6 và 2.5). Tôi muốn chạy 2.6 cho một dự án và 2.5 cho một dự án khác.
Làm thế nào tôi có thể chỉ định mà tôi muốn sử dụng?
Tôi đang làm việc trên Windows XP SP2.
Tôi đã cài đặt hai phiên bản Python trên máy của mình (phiên bản 2.6 và 2.5). Tôi muốn chạy 2.6 cho một dự án và 2.5 cho một dự án khác.
Làm thế nào tôi có thể chỉ định mà tôi muốn sử dụng?
Tôi đang làm việc trên Windows XP SP2.
Câu trả lời:
Chạy một bản sao khác của Python cũng dễ như bắt đầu thực thi chính xác. Bạn đề cập rằng bạn đã bắt đầu một phiên bản python, từ dòng lệnh, chỉ bằng cách gõ python
.
Điều này làm trong Windows, là để truy tìm %PATH%
biến môi trường, kiểm tra tệp thực thi, tệp bó ( .bat
), tệp lệnh ( .cmd
) hoặc một số tệp thực thi khác để chạy (điều này được điều khiển bởi PATHEXT
biến môi trường), khớp với tên đã cho. Khi nó tìm thấy tập tin chính xác để chạy tập tin đang được chạy.
Bây giờ, nếu bạn đã cài đặt hai phiên bản python 2.5 và 2.6, đường dẫn sẽ có cả hai thư mục của chúng trong đó, giống như PATH=c:\python\2.5;c:\python\2.6
nhưng Windows sẽ dừng kiểm tra đường dẫn khi tìm thấy kết quả khớp.
Những gì bạn thực sự cần làm là gọi một cách rõ ràng một hoặc cả hai ứng dụng, chẳng hạn như c:\python\2.5\python.exe
hoặcc:\python\2.6\python.exe
.
Cách khác là tạo một lối tắt đến cách python.exe
gọi tương ứng giữa người này python25
và người kia python26
; sau đó bạn có thể chỉ cần chạy python25
trên dòng lệnh của bạn.
Thêm hai giải pháp nữa cho vấn đề:
#! c:\[path to Python 2.5]\python.exe
- đối với các tập lệnh bạn muốn được chạy với Python 2.5
#! c:\[path to Python 2.6]\python.exe
- cho các tập lệnh bạn muốn được chạy với Python 2.6
hoặc thay vì chạy python
lệnh chạy pylauncher lệnh ( py
) chỉ định phiên bản Python nào bạn muốn;
py -2.6
- phiên bản 2.6
py -2
- phiên bản cài đặt mới nhất 2.x
py -3.4
- phiên bản 3.4
py -3
- phiên bản cài đặt mới nhất 3.x
virtualenv -p c:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]
virtualenv -p c:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]
ví dụ
virtualenv -p c:\python2.5\python.exe c:\venvs\2.5
virtualenv -p c:\python2.6\python.exe c:\venvs\2.6
sau đó bạn có thể kích hoạt đầu tiên và làm việc với Python 2.5 như thế này
c:\venvs\2.5\activate
và khi bạn muốn chuyển sang Python 2.6, bạn làm
deactivate
c:\venvs\2.6\activate
c:\venvs\2.5\scripts\activate
. Đây là trên Windows 10 nếu điều đó tạo ra sự khác biệt. Khác hơn thế, hoạt động như một nét duyên dáng, cảm ơn.
Từ Python 3.3 trở đi, có trình khởi chạy Python chính thức cho Windows ( http://www.python.org/dev/peps/pep-0397/ ). Bây giờ, bạn có thể sử dụng #!pythonX
để xác định phiên bản mong muốn của trình thông dịch cũng trên Windows. Xem thêm chi tiết trong một bình luận khác của tôi hoặc đọc PEP 397.
Tóm tắt: Việc py script.py
khởi chạy phiên bản Python được nêu trong #!
hoặc Python 2 nếu #!
bị thiếu. Việc py -3 script.py
khởi chạy Python 3.
.py
phần mở rộng. Trình khởi chạy chính nó được cài đặt vào C:\Windows
đó đã có trong PATH
. Bằng cách này, cũng PATH
không cần phải sửa đổi.
Theo @alexander, bạn có thể tạo một tập hợp các liên kết tượng trưng như bên dưới. Đặt chúng ở một nơi nào đó được bao gồm trong đường dẫn của bạn để chúng có thể dễ dàng được gọi
> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe
Miễn là c: \ bin hoặc bất cứ nơi nào bạn đặt chúng vào trong đường dẫn của bạn, bây giờ bạn có thể đi
> python25
mklink
chỉ có sẵn trong Windows Vista / 2008 +. Trên XP và Server 2003, một "liên kết cứng" có thể được tạo thay vì sử dụng fsutil hardlink create <new filename> <existing filename>
và đặt hoặc di chuyển <tên tệp mới> đến một nơi nào đó trong đường dẫn của bạn. Tuy nhiên, các liên kết cứng chỉ hoạt động trên cùng một ổ đĩa.
cài đặt trăn
biến môi trường
PYTHON2_HOME: C:\Python27
PYTHON3_HOME: C:\Python36
Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
đổi tên tập tin
pip
python2 -m pip install package
python3 -m pip install package
python
lệnh sẽ gây nhầm lẫn cho hệ điều hành.
Ví dụ cho loại phiên bản 3.6 py -3.6
. Nếu bạn cũng có phiên bản 32 bit và 64 bit, bạn chỉ cần nhập py -3.6-64
hoặc py -3.6-32
.
py
thực thi được không - đây có phải là một bổ sung chỉ dành cho windows không? Có thể kết hợp điều này vào một tập lệnh dòng lệnh đa nền tảng có ở đầu không: #!/usr/bin/env python3
chẳng hạn?
Khi bạn cài đặt Python, nó sẽ không ghi đè lên các bản cài đặt khác của các phiên bản chính khác. Vì vậy, cài đặt Python 2.5.x sẽ không ghi đè lên Python 2.6.x, mặc dù cài đặt 2.6.6 sẽ ghi đè lên 2.6.5.
Vì vậy, bạn có thể chỉ cần cài đặt nó. Sau đó, bạn gọi phiên bản Python mà bạn muốn. Ví dụ:
C:\Python2.5\Python.exe
cho Python 2.5 trên windows và
C:\Python2.6\Python.exe
cho Python 2.6 trên windows hoặc
/usr/local/bin/python-2.5
hoặc là
/usr/local/bin/python-2.6
trên Windows Unix (bao gồm cả Linux và OS X).
Khi bạn cài đặt trên Unix (bao gồm cả Linux và OS X), bạn sẽ nhận được một python
lệnh chung được cài đặt, đây sẽ là lệnh cuối cùng bạn đã cài đặt. Điều này chủ yếu không phải là một vấn đề vì hầu hết các tập lệnh sẽ gọi /usr/local/bin/python2.5 hoặc một cái gì đó chỉ để bảo vệ chống lại điều đó. Nhưng nếu bạn không muốn làm điều đó và có lẽ bạn không thể cài đặt nó như thế này:
./configure
make
sudo make altinstall
Lưu ý "altinstall" có nghĩa là nó sẽ cài đặt nó, nhưng nó sẽ không thay thế python
lệnh.
Trên Windows, bạn không nhận được python
lệnh toàn cầu theo như tôi biết vì vậy đó không phải là vấn đề.
C:\Python2.5
hoặc C:\Python2.6
thư mục xuất hiện trong PATH
biến môi trường của bạn , phiên bản Python tương ứng sẽ trở thành mặc định trừ khi bạn ghi đè lên nó bằng cách chỉ định rõ ràng một đường dẫn khác đến .exe mà bạn muốn sử dụng.
Tôi thực sự khuyên bạn nên dự án pyenv-win .
Nhờ công việc của kirankotari , giờ chúng tôi có phiên bản Windows của pyenv.
Đây là một bản hack nhanh:
C:\Users\Your name
)name_of_your_shortcut.lnk
(Tôi sử dụng p27.lnk
)cp c: \ python27 \ bin \ python.exe là python2.7.exe
cp c: \ python34 \ bin \ python.exe là python3.4.exe
tất cả chúng đều nằm trong đường dẫn hệ thống, chọn phiên bản bạn muốn chạy
C:\Users\username>python2.7
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>
C:\Users\username>python3.4
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Sử dụng tệp bó để chuyển đổi, dễ dàng và hiệu quả trên windows 7. Tôi sử dụng cách này:
Trong hộp thoại biến môi trường (C: \ Windows \ System32 \ SystemProperIESAdvified.exe),
Trong phần biến người dùng
đã thêm% pathpython% vào biến môi trường đường dẫn
xóa mọi tham chiếu đến đường dẫn python
Trong phần biến hệ thống
Tôi đã tạo các tệp bó cho mỗi lần cài đặt python (exmple cho 3,4 x64
Tên = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) chỉ để nhớ.
Nội dung của tệp =
Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin
setx PathPython %PathPython%
Để chuyển đổi giữa các phiên bản, tôi thực thi tệp bó trong chế độ quản trị viên.
!!!!! Các thay đổi có hiệu lực đối với cửa sổ nhắc lệnh SUBSEQUENT MỞ. !!!
Vì vậy, tôi có quyền kiểm soát chính xác về nó.
Cách dễ nhất để chạy nhiều phiên bản python trên windows được mô tả bên dưới như sau: -
1) Tải xuống các phiên bản mới nhất của python từ python.org/doads bằng cách chọn phiên bản có liên quan cho hệ thống của bạn.
2) Chạy trình cài đặt và chọn Thêm python 3.x vào đường dẫn để tự động đặt đường dẫn trong python 3 (bạn chỉ cần nhấp vào hộp kiểm). Đối với python 2 mở lên cài đặt python 2 của bạn, chọn bất cứ sở thích mà bạn muốn nhưng hãy nhớ để thiết lập Add python.exe đến con đường để có thể được cài đặt trên ổ cứng cục bộ , Bây giờ chỉ cần nhấp vào tiếp theo và chờ cho trình cài đặt đến khi kết thúc.
3) Khi cả hai cài đặt hoàn tất. Nhấp chuột phải vào máy tính của tôi - Chuyển đến thuộc tính - Chọn cài đặt hệ thống nâng cao - Chuyển đến biến môi trường - Nhấp vào mới trong Biến hệ thống và thêm biến hệ thống mới có tên biến là PY_PYTHON và đặt giá trị biến này thành 3 . Bây giờ bấm vào OK và bạn sẽ được thực hiện.
4) Bây giờ để kiểm tra điều này, hãy mở dấu nhắc lệnh . Khi bạn đang ở trong đó gõ python hoặc py , Nó sẽ mở python3 .
5) Bây giờ thoát khỏi python3 bằng cách gõ exit () . Bây giờ gõ py -2 nó sẽ mở python 2.
Nếu không có cái nào hoạt động thì hãy khởi động lại máy tính và nếu vấn đề vẫn còn thì hãy gỡ cài đặt mọi thứ và lặp lại các bước.
Cảm ơn.
Bạn có thể tạo các môi trường phát triển python khác nhau từ đồ họa của Anaconda Navigator. Tôi gặp vấn đề tương tự khi làm việc với các phiên bản python khác nhau nên tôi đã sử dụng bộ điều hướng anaconda để tạo các môi trường phát triển python khác nhau và sử dụng các phiên bản python khác nhau trong mỗi môi trường.
Dưới đây là tài liệu trợ giúp cho việc này.
https://docs.anaconda.com/anaconda/navigator/tutorials/manage-envirments/
Sử dụng Trình soạn thảo môi trường nhanh, bạn có thể đẩy lên trên cùng thư mục cài đặt Python mong muốn. Ví dụ: để khởi động python từ thư mục c: \ Python27, hãy đảm bảo rằng thư mục c: \ Python27 nằm trước hoặc trên đầu thư mục c: \ Python36 trong biến môi trường Path. Từ kinh nghiệm của tôi, con trăn thực thi đầu tiên được tìm thấy trong môi trường Đường dẫn đang được thực thi. Ví dụ: tôi đã cài đặt MSYS2 với Python27 và vì tôi đã thêm C: \ MSYS2 vào đường dẫn trước C: \ Python36, python.exe từ thư mục C: \ MSYS2 .... đang được thực thi.
Chỉ cần gọi đúng thực thi
python
vào vỏ thử python2.5
hay python2.6
. Tôi không phải là người dùng windows, nhưng trên unix / usr / bin / python thường là bí danh của trình thực thi đủ điều kiện, tôi giả sử python trong windows được cài đặt theo cách tương tự