Reputation: 5071
I am trying to find out why my virtualenv
and/or virtualenv
wrapper - installed using pip
using homebrew
- cannot be found. I think it's because it's not added to my PATH:
$ which virtualenv
$
and:
$ virtualenv someDir
$ -bash: virtualenv: command not found
I installed pip using homebrew
, and virtualenv
using pip
, without problems. I tried reinstalling virtualenv
, but that did not work either.
How do I know what path to add to PATH
? Just the path that virtualenv.py
seems to be installed into? That seems to be:
/usr/local/lib/python2.7/site-packages/virtualenv.py
I also found this guide, which suggests this:
$ ln -s ../Cellar/python/2.7/Frameworks/Python.framework/Versions/2.7/bin/virtualenv virtualenv
However, it does not help me run virtualenv
. I am on Mac OSX 10.7.5 (Lion).
Upvotes: 28
Views: 95569
Reputation: 27
I solved it by:
At first, I found out it is located at /usr/local/python3
and then I fixed it by the command:
ln virtualenv /usr/local/bin/virtualenv
Upvotes: 1
Reputation: 11
(Mac / Linux specific)
So I got an error message when I did a pip3 install --user --upgrade virtualenv
telling me that I did not have Users/home/Library/Python/3.7/bin
in my PATH. So I simply added it.
If this is on the Mac, the following did it for me
vi ~/.bash_profile
PATH="/Users/home/Library/Python/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
restart your terminal and type virtualenv env
and that should do it.
Upvotes: 1
Reputation: 4838
For those with Python 2.7, I came across this as well, and solved it by simply putting the following line into the \etc\paths
file (may need to $ sudo chmod
it first):
/Library/Frameworks/Python.framework/Versions/2.7/bin
Save the change and start a new Terminal session. Check it with echo $PATH
Upvotes: 0
Reputation: 66
My idea is to add your virtualenv position to the BASH PATH
export PATH=$PATH:/usr/local/python2.7/bin
Or change your position
Upvotes: 0
Reputation: 1335
Had the same issue after pip install virtualenv
When I inspected python ls -la /usr/local/bin/python
I found it was symbolically linked to /Library/Frameworks/Python.framework/Versions/2.7/bin/python
When I cd in that directory I also found the virtualenv executable and
Fixed it by
cd /Library/Frameworks/Python.framework/Versions/2.7/bin
ln virtualenv /usr/local/bin/virtualenv
Sidenote: I also happen to have a python installation in /System/Library/Frameworks/Python.framework/Versions/2.7/bin
I believe that's the one that came with OSX
Upvotes: 11
Reputation: 5071
It seems that I myself am the exception to the rule for almost all 'simple' installation procedures. For some reason, it WAS a path related issue:
I ran brew info python
, which outputted a lot of information. At the bottom I found this:
Executable python scripts will be put in:
/usr/local/share/python
so you may want to put "/usr/local/share/python" in your PATH, too.
I added that to my PATH in /etc/launchd.conf
and ~/.bashrc
and lo and behold:
$ which virtualenv
tells me:
"/usr/local/share/python/virtualenv"
I still don't know why I couldn't find any pointers in the right direction, online, anywhere? Is pip install virtualenv
supposed to add to the PATH itself? If so, why not on my system? Why did @bibhas tell me explicitly it was not a path issue?
Upvotes: 18
Reputation: 301037
This solution will give you an alternate tool to use and solve your virtualenv
problem at the same time.
Use pythonbrew. It is inspired from rvm
in the ruby world and is helpful in managing pythons on your system and also wrap virtualenv
commands to provide virtual environment management. I use it Mountain Lion for my development purposes and have had no problems. More details (on my blog): http://stacktoheap.com/blog/2013/03/11/why-use-virtualenv-when-there-is-pythonbrew/
Upvotes: 0
Reputation: 2405
In your .bashrc you need to have:
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Upvotes: 2
Reputation: 59553
The module in /usr/local/lib/python2.7/site-packages
is imported by a short script that uses pkg_resources.load_entry_point
to run the application. The utility script should be in /usr/local/bin
.
Upvotes: -1