Reputation: 3727
I have been searching and tried various alternatives without success and spent several days on it now; it is driving me mad.
I am running on Red Hat Linux with Python 2.5.2. I began using the most recent Virtualenv, but I could not activate it. I found somewhere suggesting I needed an earlier version, so I have used Virtualenv 1.6.4 as that should work with Python 2.6.
python virtualenv-1.6.4/virtualenv.py virtual
Output:
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.
cd virtual
dir
Output:
bin include lib
. bin/activate
Output:
/bin/.: Permission denied.
cd bin
ls -l
Output:
total 3160
-rw-r--r-- 1 necrailk biz12 2130 Jan 30 11:38 activate
-rw-r--r-- 1 necrailk biz12 1050 Jan 30 11:38 activate.csh
-rw-r--r-- 1 necrailk biz12 2869 Jan 30 11:38 activate.fish
-rw-r--r-
ls -l
Output:
total 3160
-rwxr--r-- 1 necrailk biz12 2130 Jan 30 11:38 activate
-rw-r--r-- 1 necrailk biz12 1050 Jan 30 11:38 activate.csh
-rw-r--r-- 1 necrailk biz12 2869 Jan 30 11:38 activate.fish
-rw-r--r-- 1 necrailk biz12 1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x 1 necrailk biz
activate
again. bin/activate
Output:
/bin/.: Permission denied.
Still no joy...
Upvotes: 371
Views: 1362531
Reputation: 151
This is for Git Bash running on Windows Server 2022. There is a question for Git Bash but it links to here as a duplicate.
Everything works fine after . my-venv/Scripts/activate
if I stay on the drive with the venv folder. But if I try to work on another drive it falls apart:
$ which python
/f/\my-venv/Scripts/python
$ cd /c
$ which python
/c/Users/myuser/AppData/Local/Programs/Python/Python311/python
Not sure if this is a known problem or something specific to my system, but in case somebody else runs into it, there it is...
(I worked around it by keeping code & venv on the same drive).
Upvotes: -1
Reputation: 483
Run this code. It will get activated if you are on a Windows machine:
. venv/Scripts/activate
Run this code. It will get activated if you are on a Linux or Mac machine:
. venv/bin/activate
Upvotes: 32
Reputation: 523
I was getting this error "-sh: 13: source: not found"
Resolution is to first login as sudo
$sudo su
Then execute the command
#source virtual_env_name/bin/activate
Upvotes: 4
Reputation:
mkdir <YOURPROJECT>
: Create a new project
cd <YOURPROJECT>
: Change directory to that project
virtualenv <NEWVIRTUALENV>
: Creating a new virtualenv
source <NEWVIRTUALENV>/bin/activate
: Activating that new virtualenv
Upvotes: 23
Reputation: 209
cd .\venv\Scripts\
.\activate
Upvotes: 1
Reputation: 3748
Windows 10
In Windows, these directories are created:
To activate the virtual environment in Windows 10.
down\scripts\activate
The \scripts directory contains the activate file.
Linux Ubuntu
In Ubuntu, these directories are created:
To activate the virtual environment in Linux Ubuntu.
source ./bin/activate
The /bin directory contains the activate file.
The virtual environment can be copied from Windows to Linux Ubuntu and vice versa
If the virtual environment folder is copied from Windows to Linux Ubuntu then according to directories:
source ./down/Scripts/activate
Upvotes: 6
Reputation: 3736
For Windows, you can perform it as:
To create the virtual environment as: virtualenv envName –python=python.exe
(if not, create an environment variable)
To activate the virtual environment: \path\to\envName\Scripts\activate
To deactivate the virtual environment: \path\to\env\Scripts\deactivate
It works fine on the new Python version.
Upvotes: 13
Reputation: 51
On Mac, change the shell to Bash (keep note that virtual env works only in the Bash shell)
. venv/bin/activate
.: Command not found.
source venv/bin/activate
Badly placed ()'s.
bash
source venv/bin/activate
New prompt:
(venv) bash-3.2$
Bingo, it worked. See, the prompt changed.
On Ubuntu:
source toolsenv/bin/activate
New prompt:
(toolsenv) user@local_host~/tools$
Note: the prompt changed
Upvotes: 5
Reputation: 69
Create your own Python virtual environment called <your environment _name>:
.
I have given it the name "VE".
git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE
To activate your new virtual environment, run (notice it's not ./
here):
. VE/bin/activate
Sample output (note prompt changed):
(VE)c34299@a200dblr$
Once your virtual environment is set, you can remove the Virtualenv
repository.
Upvotes: 4
Reputation: 2737
cd to the environment path, and go to the bin folder. At this point, when you use the ls command, you should see the "activate" file.
Now type
source activate
Upvotes: 33
Reputation: 79
I had faced the same problem. The main reason being that I created the virtualenv as a "root" user. But later I was trying to activate it using another user.
chmod won't work as you're not the owner of the file, hence the alternative is to use chown (to change the ownership).
For example, if you have your virtualenv created at /home/abc/ENV
.
Then cd to /home/abc
.
And run the command: chown -Rv [user-to-whom-you want-change-ownership] [folder/filename whose ownership needs to be changed]
In this example, the commands would be: chown -Rv abc ENV
After the ownership is successfully changed, you can simply run source /ENV/bin/./activate and your should be able to activate the virtualenv correctly.
Upvotes: 1
Reputation: 1161
You can do
source ./python_env/bin/activate
Or just go to the directory:
cd /python_env/bin/
and then
source ./activate
Upvotes: 115
Reputation: 4681
Here is my workflow after creating a folder and cd
'ing into it:
virtualenv venv --distribute
Output:
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
And
source venv/bin/activate
python
Upvotes: 455
Reputation: 31
I had trouble getting source /bin/activate
running, but then I realized I was using tcsh as my terminal shell instead of Bash.
Once I switched, I was able to activate venv.
Upvotes: 3
Reputation:
You forgot to do source bin/activate
, where source is an executable name. It struck me the first few times as well. It is easy to think that the manual is telling "execute this from root of the environment folder".
There isn't any need to make activate
executable via chmod
.
Upvotes: 141
Reputation: 925
I would recommend virtualenvwrapper as well. It works wonders for me and how I always have problems with activating.
Upvotes: 5
Reputation: 77089
The problem there is the /bin/.
command. That's really weird, since . should always be a link to the directory it's in. (Honestly, unless .
is a strange alias or function, I don't even see how it's possible.) It's also a little unusual that your shell doesn't have a .
builtin for source
.
One quick fix would be to just run the virtualenv in a different shell. (An obvious second advantage being that instead of having to deactivate
you can just exit
.)
/bin/bash --rcfile bin/activate
If your shell supports it, you may also have the nonstandard source
command, which should do the same thing as .
, but may not exist. (All said, you should try to figure out why your environment is strange or it will cause you pain again in the future.)
By the way, you didn't need to chmod +x
those files. Files only need to be executable if you want to execute them directly. In this case you're trying to launch them from .
, so they don't need it.
Upvotes: 22
Reputation: 739
Go to the project directory. In my case microblog
is the flask project directory and under microblog
directory there should be app
and venv
folders. then run the below command, This is one worked for me in Ubuntu.
source venv/bin/activate
Upvotes: 47