Reputation: 3376
I had two versions of Python installed on my machine (versions 2.6 and 2.5). I want to run 2.6 for one project and 2.5 for another.
How can I specify which I want to use?
I am working on Windows XP SP2.
Upvotes: 279
Views: 455266
Reputation: 95
I have versions 3.11.3
and 3.10.11
and you can run different versions from powershell or cmd, stuff like that, just by typing python3.10
or python3.11
etc. Just make sure not to use python310
or python311
as it does not work. This is probably the most simple solution for your problem, in my opinion.
Upvotes: 2
Reputation: 736
The simplest solution that worked for Windows 10:
Open Terminal
> cd Users\username\AppData\Local\Programs\Python
> copy python36\python.exe python36\python36.exe
> copy python39\python.exe python39\python39.exe
Now, running python36
in the Terminal will fire up python3.6 version and python39
will fire up python 3.9 version
Upvotes: 0
Reputation: 11
In 2023
let's say previous python is 3.7 it has this paths in the environment variables set as
C:\Program Files\Python37\Scripts\
C:\Program Files\Python37\
Now let's say you install 3.10.* it has this paths in the environment variables set as
C:\Program Files\Python310\Scripts\
C:\Program Files\Python310\
What this means is that its added to path of where windows will look when you enter a command like python in the CMD and will select from the path that matches first
If you enter python it will return python for the first path it sees it executable in
Solution
So to call any python of your choice rename python executable in path C:\Program Files\Python310\
to python310 and call from CMD as python310 to use
python3.10
I.e if you call ordinary python in CMD it will return the other version that wasn't renamed which is 3.7 in my case
For Pip
just call
pip3.10
pip3.7
Upvotes: 1
Reputation: 21
Here is a solution:
Note: You don't need to run "pip install virtualenv"
Upvotes: 2
Reputation: 61
Shows your installed pythons
py -0
Uses version of python to do something
py -*version*
ex.
py -3.8 venv venv
Will create virtual environment in python 3.8
Note:
python -0
or
python -3.8
doesn't work, I assume it has to be "py"
Upvotes: 6
Reputation: 31
Introduce more details based on the answer given by @Aman. Define different environment variables for different python versions. For example:
E:\python2\python.exe
and E:\python3\python.exe
at the same time.%python2%
for E:\python2\python.exe
and %python2%
for E:\python3\python.exe
.%python2%
(or %python3%
) directly in command prompt.Upvotes: 0
Reputation: 1398
This is a simple and elegant solution to easily run 2 or more different versions of python without using scripts in Windows. Whatever the version of python, it will start from the Command prompt.
I have python versions 3.6.6 and 3.9. The Environment Variable paths are normal and were automatically added when each version of python was installed.
It's best to install python using the "all users" option. This way the python will simply install to:
C:\program files\python36
C:\program files\python39
Open each of these python folders and find the python.exe file. Copy and paste the python.exe file into those same folders. Then carefully rename the copies to:
python36.exe
python39.exe
Open and edit Environment Variables. Add 4 new User Variables.
C:\Program Files\Python36\Scripts
C:\Program Files\Python36\python36.exe
C:\Program Files\Python39\Scripts
C:\Program Files\Program39\python39.exe
Save and exit Environment Variables.
Open a new Command Prompt terminal window. To run one or the other version of python, type:
python36
python39
More versions of python can easily be added by repeating the same as shown above. Elegant and simple. Done.
Upvotes: 2
Reputation: 814
One easy way for this is that you can use
py -3.8 -m pip install virtualenv
here -3.8
goes with your [version number]
After installing the virtualenv, you can create the virtual environment of your application using
py -3.8 -m virtualenv [your env name]
then cd to venv, enter activate
This would activate the python version you like. Just change the version number to use a different python version.
Upvotes: 14
Reputation: 11
let's say if we have python 3.7 and python 3.6 installed.
they are respectively stored in following folder by default.
C:\Users\name\AppData\Local\Programs\Python\Python36 C:\Users\name\AppData\Local\Programs\Python\Python37
if we want to use cmd prompt to install/run command in any of the above specific environment do this:
There should be python.exe in each of the above folder.
so when we try running any file for ex. (see image1) python hello.py
. we call that respective python.exe. by default it picks lower version of file. (means in this case it will use from python 3.6 )
so if we want to run using python3.7. just change the .exe file name. for ex. if I change to python37.exe and i want to use python3.7 to run hello.py
I will use python37 hello.py
. or if i want to use python3.7 by default i will change the python.exe filename in python3.6 folder to something else . so that it will use python3.7 each time when I use only python hello.py
Upvotes: 1
Reputation: 1026
I thought this answer might be helpful to others having multiple versions of python and wants to use pipenv to create virtual environment.
py -[python version] pip install pipenv
, example: py -3.6 pip install pipenv
pipenv --python [version]
to create the virtual environment in the version of the python you desire. example: pipenv --python 3.6
pipenv shell
to activate your virtual environment.Upvotes: -1
Reputation: 2353
Running a different copy of Python is as easy as starting the correct executable. You mention that you've started a python instance, from the command line, by simply typing python
.
What this does under Windows, is to trawl the %PATH%
environment variable, checking for an executable, either batch file (.bat
), command file (.cmd
) or some other executable to run (this is controlled by the PATHEXT
environment variable), that matches the name given. When it finds the correct file to run the file is being run.
Now, if you've installed two python versions 2.5 and 2.6, the path will have both of their directories in it, something like PATH=c:\python\2.5;c:\python\2.6
but Windows will stop examining the path when it finds a match.
What you really need to do is to explicitly call one or both of the applications, such as c:\python\2.5\python.exe
or c:\python\2.6\python.exe
.
The other alternative is to create a shortcut to the respective python.exe
calling one of them python25
and the other python26
; you can then simply run python25
on your command line.
Upvotes: 196
Reputation: 461
You can create different python development environments graphically from Anaconda Navigator. I had same problem while working with different python versions so I used anaconda navigator to create different python development environments and used different python versions in each environments.
Here is the help documentation for this.
https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/
Upvotes: 0
Reputation: 191
I strongly recommend the pyenv-win project.
Thanks to kirankotari's work, now we have a Windows version of pyenv.
Upvotes: 15
Reputation: 723
For example for 3.6 version type py -3.6
.
If you have also 32bit and 64bit versions, you can just type py -3.6-64
or py -3.6-32
.
Upvotes: 54
Reputation: 2388
install python
environment variable
PYTHON2_HOME: C:\Python27
PYTHON3_HOME: C:\Python36
Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
file rename
pip
python2 -m pip install package
python3 -m pip install package
Upvotes: 25
Reputation: 11
Using a batch file to switch, easy and efficient on windows 7. I use this:
In the environment variable dialog (C:\Windows\System32\SystemPropertiesAdvanced.exe),
In the section user variables
added %pathpython% to the path environment variable
removed any references to python pathes
In the section system variables
I created batch files for every python installation (exmple for 3.4 x64
Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) just to remember.
Content of the file =
Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin
setx PathPython %PathPython%
To switch between versions, I execute the batch file in admin mode.
!!!!! The changes are effective for the SUBSEQUENT command prompt windows OPENED. !!!
So I have exact control on it.
Upvotes: 1
Reputation: 29
The easiest way to run multiple versions of python on windows is described below as follows:-
1)Download the latest versions of python from python.org/downloads by selecting the relevant version for your system.
2)Run the installer and select Add python 3.x to the path to set path automatically in python 3 (you just have to click the checkbox). For python 2 open up your python 2 installer, select whatever preferences you want but just remember to set Add python.exe to path to Will be installed on local hard drive, Now just click next and wait for the installer to finish.
3)When both the installations are complete. Right click on my computer--Go to properties--Select advanced system settings--Go to environment variables--Click on new under System variables and add a new system variable with variable name as PY_PYTHON and set this variable value to 3. Now click on OK and you should be done.
4)Now to test this open the command prompt. Once you are in there type python or py, It should open up python3.
5)Now exit out of python3 by typing exit(). Now type py -2 it should open python 2.
If none of this works then restart the computer and if the problem still persists then uninstall everything and repeat the steps.
Thanks.
Upvotes: 2
Reputation: 42465
Adding two more solutions to the problem:
#! c:\[path to Python 2.5]\python.exe
- for scripts you want to be run with Python 2.5
#! c:\[path to Python 2.6]\python.exe
- for scripts you want to be run with Python 2.6
or instead of running python
command run pylauncher command (py
) specyfing which version of Python you want;
py -2.6
– version 2.6
py -2
– latest installed version 2.x
py -3.4
– version 3.4
py -3
– latest installed version 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]
for example
virtualenv -p c:\python2.5\python.exe c:\venvs\2.5
virtualenv -p c:\python2.6\python.exe c:\venvs\2.6
then you can activate the first and work with Python 2.5 like this
c:\venvs\2.5\activate
and when you want to switch to Python 2.6 you do
deactivate
c:\venvs\2.6\activate
Upvotes: 175
Reputation: 1
Using the Rapid Environment Editor you can push to the top the directory of the desired Python installation. For example, to start python from the c:\Python27 directory, ensure that c:\Python27 directory is before or on top of the c:\Python36 directory in the Path environment variable. From my experience, the first python executable found in the Path environment is being executed. For example, I have MSYS2 installed with Python27 and since I've added C:\MSYS2 to the path before C:\Python36, the python.exe from the C:\MSYS2.... folder is being executed.
Upvotes: -1
Reputation: 57
cp c:\python27\bin\python.exe as python2.7.exe
cp c:\python34\bin\python.exe as python3.4.exe
they are all in the system path, choose the version you want to run
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.
>>>
Upvotes: 2
Reputation: 2567
Here's a quick hack:
C:\Users\Your name
)name_of_your_shortcut.lnk
(I use p27.lnk
)Upvotes: 5
Reputation: 20794
From Python 3.3 on, there is the official Python launcher for Windows (http://www.python.org/dev/peps/pep-0397/). Now, you can use the #!pythonX
to determine the wanted version of the interpreter also on Windows. See more details in my another comment or read the PEP 397.
Summary: The py script.py
launches the Python version stated in #!
or Python 2 if #!
is missing. The py -3 script.py
launches the Python 3.
Upvotes: 60
Reputation: 6192
As per @alexander you can make a set of symbolic links like below. Put them somewhere which is included in your path so they can be easily invoked
> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe
As long as c:\bin or where ever you placed them in is in your path you can now go
> python25
Upvotes: 64
Reputation: 172367
When you install Python, it will not overwrite other installs of other major versions. So installing Python 2.5.x will not overwrite Python 2.6.x, although installing 2.6.6 will overwrite 2.6.5.
So you can just install it. Then you call the Python version you want. For example:
C:\Python2.5\Python.exe
for Python 2.5 on windows and
C:\Python2.6\Python.exe
for Python 2.6 on windows, or
/usr/local/bin/python-2.5
or
/usr/local/bin/python-2.6
on Windows Unix (including Linux and OS X).
When you install on Unix (including Linux and OS X) you will get a generic python
command installed, which will be the last one you installed. This is mostly not a problem as most scripts will explicitly call /usr/local/bin/python2.5 or something just to protect against that. But if you don't want to do that, and you probably don't you can install it like this:
./configure
make
sudo make altinstall
Note the "altinstall" that means it will install it, but it will not replace the python
command.
On Windows you don't get a global python
command as far as I know so that's not an issue.
Upvotes: 8