296

I created a virtualenv around my project, but when I try to activate it I cannot. It might just be syntax or folder location, but I am stumped right now.

You can see below, I create the virtualenv and call it venv. Everything looks good, then I try to activate it by running source venv/bin/activate

I'm thinking it might just have to do with my system path, but not sure what to point it to (I do know how to edit the path). I'm on python 7 / windows os, virtual env 2.2.x

 Processing dependencies for virtualenv Finished processing dependencies for virtualenv c:\testdjangoproj\mysite>virtualenv --no-site-packages venv The --no-site-packages flag is deprecated; it is now the default behavior. Using real prefix 'C:\\Program Files (x86)\\Python' New python executable in venv\Scripts\python.exe File venv\Lib\distutils\distutils.cfg exists with different content; not overwri ting Installing setuptools.................done. Installing pip...................done. c:\testdjangoproj\mysite>source venv/bin/activate 'source' is not recognized as an internal or external command, operable program or batch file. c:\testdjangoproj\mysite>source venv/bin/activate 'source' is not recognized as an internal or external command, operable program or batch file. c:\testdjangoproj\mysite>source mysite/bin/activate 'source' is not recognized as an internal or external command, operable program or batch file. c:\testdjangoproj\mysite> 
2
  • This documentation really helps out for both Posix and Windows systems: virtualenv.pypa.io/en/stable/userguide Commented Jul 26, 2016 at 21:10
  • 7
    Source command will not run in windows environment. Commented May 24, 2020 at 8:57

39 Answers 39

649

source is a shell command designed for users running on Linux (or any Posix, but whatever, not Windows).

On Windows, virtualenv creates a .bat/.ps1 file, so you should run venv\Scripts\activate instead (per the virtualenv documentation on the activate script).

Just run activate, without an extension, so the right file will get used regardless of whether you're using cmd.exe or PowerShell.

Sign up to request clarification or add additional context in comments.

13 Comments

This also helps with virtualenv on both Posix and Windoze systems. virtualenv.pypa.io/en/stable/userguide
I don't see this "venv" directory after installing Python 2.7 on Windows. Advice? I went to Blairg23's link, but do not see an "activate" script in my Python "Scripts" directory.
or just activate
i ran .\\venv\Scripts\activate.bat but the command just passes on windows 10 without actiavting venv sysmbol (venv) C:\myApp. what is the problem
I ran . venv\scripts\activate On Vscode PowerShell Extension and it worked fine.
This is also how it works for PyCharm.
|
76

I had the same problem. I was using Python 2, Windows 10 and Git Bash. Turns out in Git Bash you need to use:

 source venv/Scripts/activate 

2 Comments

I have a Windows computer and using the Git Bash terminal was the only terminal that worked for me. (The other terminals I tried to use was Command Prompt and the VS Code terminal.)
I used it the same way with Python 3.10, Windows 10, and Git Bash.
48

I was also facing the same issue in my Windows 10 machine. What steps i tried were:

Go to andconda terminal Step 1

pip3 install -U pip virtualenv 

Step 2

virtualenv --system-site-packages -p python ./venv 

or

virtualenv --system-site-packages -p python3 ./venv 

Step 3

.\venv\activate 

You can check it via spider tool in anaconda by typing import tensorflow as tf

3 Comments

I keep forgetting that I can't use forward slashes in the command prompt.
that worked! i just shocked that so many solutions and none of them do the right thing! ALSO!!! After: virtualenv --system-site-packages -p python ./venv You need: venv\Scripts\activate look at the accepted solution somewhere below
.\venv\scripts\activate
44
  1. For activation you can go to the venv your virtualenv directory by cd venv.

  2. Then on Windows, type dir (on unix, type ls). You will get 5 folders include, Lib, Scripts, tcl and 60

  3. Now type .\Scripts\activate to activate your virtualenv venv.

Your prompt will change to indicate that you are now operating within the virtual environment. It will look something like this (venv)user@host:~/venv$.

And your venv is activated now.

1 Comment

In Windows10 .\Scripts\activate
30

As of python 3.3 virtualenv became part of python under the name venv you can read more on it here

Note: on ubuntu 20.x you used to need to do a bit of extra work

to create a virtual environment you simply do:

python -m venv .venv 

in this case i named it .venv but it can be whatever you want

now to activate it, it differs a bit so i'll start with the easiest

linux:

source ./.venv/bin/Activate 

windows:

if you're using cmd then:

.\.venv\Scripts\activate.bat 

if you're using powershell (default for vscode), then you need to do a bit more work

first you need to enable "running scripts" on your system (read this)

you can do that with this (as admin):

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 

then you can activate your venv with

.\.venv\Scripts\activate.ps1 

1 Comment

yes...this works.. one should replace name e.g. env in other places if you are using different name
24

source command is officially for Unix operating systems family and you can't use it on windows basically. instead, you can use venv\Scripts\activate command to activate your virtual environment.

Made a Screenshot of how venv\Scripts\activate command works correctly

Comments

14

Ensure venv is there and just follow the commands below. It works in Windows 10.

Go to the path where you want your virtual enviroments to reside:

> cd <my_venv_path> 

Create the virtual environment named "env":

> python -m venv env 

Add the path to the git ignore file (optional):

> echo env/ >> .gitignore 

Activate the virtual env:

> .\env\Scripts\activate 

1 Comment

This was right on!
6

Tried several different commands until I came across:

source venv/Scripts/activate 

This did it for me. Setup: Win 10, python 3.7, gitbash. Gitbash might be the culprit for not playing nice with other activate commands.

1 Comment

This exactly solved my problem. I think this is very correct way in Windows OS.
6

You can try for Windows: .\venv\Scripts\activate to activate your Python environment.

Comments

5

Just open the folder with any gitbash console.

for example using visualCode and Gitbash console program:

  1. Install Gitbash for windows (there)

  2. using gitbash console directly, right click over the project open git bash Here option .

or in Visualcode, looking for a Select->default shell and change it for Gitbash

  1. now your project is open with bash console and right path, put source ./Scripts/activate

btw : . with blank space source

enter image description here

Comments

4

For windows, type "C:\Users\Sid\venv\FirstProject\Scripts\activate" in the terminal without quotes. Simply give the location of your Scripts folder in your project. So, the command will be location_of_the_Scripts_Folder\activate.enter image description here

Comments

4
  1. Open your powershell as admin
  2. Enter "Set-ExecutionPolicy RemoteSigned -Force
  3. Run "gpedit.msc" and go to >Administrative Templates>Windows Components>Windows Powershell
  4. Look for "Activate scripts execution" and set it on "Activated"
  5. Set execution directive to "Allow All"
  6. Apply
  7. Refresh your env

Comments

4

if you already cd your project type only in windows 10

Scripts/activate 

That works for me:)

Comments

4

Instead of using:

 source ./venv/Scripts/activate 

Use only:

 ./venv/Scripts/activate 

Your Script will be activated.

Comments

3

You can run the source command on cygwin terminal

Comments

3

A small reminder, but I had my slashes the wrong way on Win10 cmd. According to python documentation the activate command is: C:\> <venv>\Scripts\activate.bat When you're browsing directories it's e.g. cd .env/Scripts

So to create my venv I used python -m venv --copies .env and to activate .env\Scripts\activate.bat

Comments

3

For windows Microsoft Tech Support it might be a problem with Execution Policy Settings. To fix it, you should try executing Set-ExecutionPolicy Unrestricted -Scope Process

Comments

2

I have a hell of a time using virtualenv on windows with git bash, I usually end up specifying the python binary explicitly.

If my environment is in say .env I'll call python via ./.env/Scripts/python.exe …, or in a shebang line #!./.env/Scripts/python.exe;

Both assuming your working directory contains your virtualenv (.env).

1 Comment

also, some things don't behave correctly cough _ansible_ cough when the virtualenv isn't activated, so if things are weird you may have to activate the venv anyway :(
2

If you’re using Windows, use the command "venv\Scripts\activate" (without the word source) to activate the virtual environment. If you’re using PowerShell, you might need to capitalize Activate.

Comments

2

Some people are having trouble with vscode i assume as all the above methods dont work.

Its simply because by default vscode uses powershell not cmd... click on the little arrow beside it and select cmd and run the command.

2 Comments

This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review
Even though it doesn't provide an answer to the question, it helps users to who come up here with a scenario he mentioned, like me!
1

Finally Worked on Windows 10 by using:

activate myvenv 

where myvenv is the name the virtual environment I want to activate.

So basically, the command is:

activate <<your_venv_name>> 

All the best!

1 Comment

not working here, you probably have prerequisites installed that you dont mention here.
1

if .\venv\Scripts\activate does not work neither and you find this error

\Activate.ps1 cannot be loaded because running scripts is disabled on this system

you can simple type set-executionpolicy remotesigned in powershell and the error must be gone.

powershell should run as administrator

Comments

1

I just changed my launcher from powershell to cmd and it works for me and Virtual Environment created

Comments

1

For Windows in cmd

.venv\Scripts\activate

Comments

0

If you see the 5 folders (Include,Lib,Scripts,tcl,pip-selfcheck) after using the virtualenv yourenvname command, change directory to Scripts folder in the cmd itself and simply use "activate" command.

Comments

0

The best way is, using backward slahes and using .bat at the end of activate

C:\Users>your_env_name\Scripts\activate.bat 

Comments

0

If wants to open virtual environment on Windows then just remember one thing on giving path use backwards slash not forward.

This is right:

D:\xampp\htdocs\htmldemo\python-virtual-environment>env\Scripts\activate 

This is wrong:

D:\xampp\htdocs\htmldemo\python-virtual-environment>env/Scripts/activate 

Comments

0

The steps for activating virtualenv using Python3 on windows are:

  1. python3 -m venv env
  2. .\env\bin\activate

Comments

0

Use These it worked for meenv\Scripts\activate

Comments

0

For those of you crazy enough to have a custom DOS prompt, venv activation may fail, depending on your %PROMPT% environment variable content.

Say you have a DOS prompt defined as follows:

set PROMPT=$_$E[1;30;40m[$E[0;36;40m%computername% | %userdomain%\%username%$E[1;30;40m] $E[0;33;40m$M$_$E[35;40m$d$s$t$h$h$h$h$h$h$_$E[1;33;40m$p$_$E[1;30;40m$g $E[0;37;40m 

(btw, it shows as follows, with some fancy colors:

[W10-MY_COMPUTER | W10-MY_COMPUTER\JOHNDOE] 15/09/2022 20:31 F:\ > echo "Hello World" Hello World [W10-MY_COMPUTER | W10-MY_COMPUTER\JOHNDOE] 15/09/2022 20:31 F:\ > 

)

Then if you try to activate a venv :

.\venv\Scripts\activate.bat 

it may fail with a rather unclear error that states:

Path not found 

without further indications.

The trick is that activate.bat(/deactivate.bat) scripts try to save(/restore) the %PROMPT% variable with this syntax:

... set _OLD_VIRTUAL_PROMPT=%PROMPT% ... set PROMPT=(venv) %PROMPT% ... 

It can be fixed with this syntax:

... set "_OLD_VIRTUAL_PROMPT=%PROMPT%" ... set "PROMPT=(venv) %PROMPT%" ... 

now it shows:

[W10-MY_COMPUTER | W10-MY_COMPUTER\JOHNDOE] 15/09/2022 20:31 F:\ > venv\Scripts\activate.bat (venv) [W10-MY_COMPUTER | W10-MY_COMPUTER\JOHNDOE] 15/09/2022 20:31 F:\ > 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.