240

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>
mrj
  • 849
  • 2
  • 8
  • 18
user1157538
  • 2,403
  • 3
  • 14
  • 4

35 Answers35

552

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.

John Flatness
  • 32,469
  • 5
  • 79
  • 81
54

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
jainilvachhani
  • 708
  • 6
  • 13
  • 6
    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.) – Gwen Au Oct 16 '18 at 17:00
40

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

Goa Beach
  • 3
  • 2
36
  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.

Jerome
  • 53
  • 1
  • 5
Gautam Kumar
  • 1,385
  • 14
  • 17
18

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

Mohammad Heydari
  • 3,933
  • 2
  • 26
  • 33
12

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
MrBean Bremen
  • 14,916
  • 3
  • 26
  • 46
Vineeth I S
  • 129
  • 1
  • 4
5

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.

fuggerjaki61
  • 822
  • 1
  • 11
  • 24
Shah_z51
  • 77
  • 1
  • 5
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

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
4

if you already cd your project type only in windows 10

Scripts/activate

That works for me:)

Bernardo Olisan
  • 665
  • 7
  • 20
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

louisav
  • 372
  • 1
  • 5
  • 26
3

Instead of using:

 source ./venv/Scripts/activate

Use only:

 ./venv/Scripts/activate

Your Script will be activated.

ShraOne Devade
  • 199
  • 1
  • 5
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).

ThorSummoner
  • 16,657
  • 15
  • 135
  • 147
  • 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 :( – ThorSummoner Jun 18 '18 at 20:15
2

You can run the source command on cygwin terminal

Paras Singh
  • 383
  • 1
  • 3
  • 11
2

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

Bharat Agrawal
  • 125
  • 3
  • 11
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.

  • This does not provide an answer to the question. Once you have sufficient [reputation](https://stackoverflow.com/help/whats-reputation) you will be able to [comment on any post](https://stackoverflow.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/31340784) – Ozgur Bagci Mar 23 '22 at 20:32
  • 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! – shaneeqa Dec 21 '22 at 09:35
1

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.

Thenhan
  • 21
  • 3
1

open the folder with any gitbash console. for example using visualCode and Gitbash console program: 1)Install Gitbash for windows

2) using VisualCode IDE, right click over the project open in terminal console option

3) on window console in Visualcode, looking for a Select->default shell and change it for Gitbash

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

btw : . with blank space = source

enter image description here

Calos
  • 1,783
  • 19
  • 28
nativelectronic
  • 646
  • 4
  • 11
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!

vagdevi k
  • 1,478
  • 9
  • 25
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

errixed
  • 93
  • 6
1

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

to create a virtual environment you simply do:

python -m venv env

in this case i named it "env" but it can be whatever you want

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

linux:

source ./env/bin/Activate

windows:

if you're using cmd then:

.\env\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

.\env\Scripts\activate.ps1
cabiste
  • 97
  • 1
  • 8
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.

Chan Kha Vu
  • 9,834
  • 6
  • 32
  • 64
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
heySushil
  • 493
  • 7
  • 13
0

The steps for activating virtualenv using Python3 on windows are:

  1. python3 -m venv env
  2. .\env\bin\activate
Lalit Bangad
  • 186
  • 1
  • 10
0

Use These it worked for meenv\Scripts\activate

Developer-Felix
  • 337
  • 2
  • 4
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:\
>
LoneWanderer
  • 3,058
  • 1
  • 23
  • 41
0

I faced the same error in Visual Studio Code as execution policy from Microsoft does not allow to run scripts. open

Windows powershell as administrator as suggested then write command

 Set-ExecutionPolicy Unrestricted -Scope Process

press A to yess for All. This works for me

amaar
  • 97
  • 8
-1

If you are using windows OS then in Gitbash terminal use the following command $source venv/Scripts/activate. This will help you to enter the virtual environment.

-1
  1. Open your project using VS code editor .
  2. Change the default shell in vs code terminal to git bash.

  3. now your project is open with bash console and right path, put "source venv\Scripts\activate" in Windows

shreya
  • 1
-1

Navigate to your virtualenv folder eg ..\project1_env> Then type

source scripts/activate

eg ..\project1_env>source scripts/activate

-1

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

C:\Users>your_env_name\Scripts\activate.bat
Ahmad Waqar
  • 474
  • 4
  • 7
-1
:: location of bat file
::C:\Users\gaojia\Dropbox\Projects\free_return\venv\Scripts\activate.bat 
:: location of the cmd bat file and the ipython notebook
::C:\Users\gaojia\Dropbox\Projects\free_return\scripts\pre_analysis
source ..\..\venv\Scripts\activate
PAUSE
jupyter nbconvert --to html --execute consumer_response_DID.ipynb
PAUSE

Above is my bat file through which I try to execute an ipython notebook. But the cmd window gives me nothing and shut down instantly, any suggestion why would this happen?

Jia Gao
  • 1,172
  • 3
  • 13
  • 26
-1

If you are using windows, just run .\Scripts\activate. Mind that the backslash plays the trick!

Zidane
  • 1
  • 1
-2

It's been a while without usign Django, so when I got back to my old project I run into the same issue on Windows 10 and this worked for me:

venv/Scripts/activate

Cyebukayire
  • 795
  • 7
  • 14
-2

Open powershell as admin and paste this "set-executionpolicy remotesigned", then go back to where you tried to run the activate of the venv and it should work :)

Link to the article that explains more in detail: https://www.stanleyulili.com/powershell/solution-to-running-scripts-is-disabled-on-this-system-error-on-powershell/

Lasse
  • 17
  • 9