27

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).

Nathaniel Ford
  • 20,545
  • 20
  • 91
  • 102
Michahell
  • 4,905
  • 5
  • 29
  • 45
  • 7
    It's not a path issue. Pip puts an executable file named `virtualenv` in `/usr/local/bin/` when successfully installed. Try `pip uninstall virtualenv` and then reinstall `sudo pip install virtualenv`. `sudo` because you'll need to install it in global scope. – Bibhas Debnath Mar 16 '13 at 19:39
  • @Bibhas but if i load launchd.conf, i have /usr/local/bin added to my path so then i should be able to just use virtualenv in bash right? or pip only put it there when using sudo? where could i have found this information? – Michahell Mar 16 '13 at 21:49
  • @Bibhas i tried what you suggested, i did: + $ pip uninstall virtualenv + $ pip uninstall virtualenvwrapper + $ sudo pip install virtualenv + $ cd /usr/local/bin/ + $ find virtualenv + find: virtualenv: No such file or directory`` So something is going wrong here? that would make sense... but why?? – Michahell Mar 16 '13 at 21:55
  • how did you install pip? which package did you install with brew? can you check the pip version with `pip -V`? when you install virtualenv with pip, does it give any error? can you post the install log? – Bibhas Debnath Mar 17 '13 at 05:19
  • See this screenshot http://d.pr/i/paQQ for the first 3 questions, and this one for installing virtualenv: http://d.pr/i/c4pE and virtualenvwrapper: http://d.pr/i/L7E0 Also, i had no errors installing virtualenv at any time, i did have warnings.. – Michahell Mar 18 '13 at 11:26
  • my solution was : sudo -H pip install virtualenv – Scott Stensland Jun 09 '18 at 01:36

9 Answers9

18

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?

Nathaniel Ford
  • 20,545
  • 20
  • 91
  • 102
Michahell
  • 4,905
  • 5
  • 29
  • 45
  • 1
    funny cause brew just told me to remove that from my path because it works differently now, yet then i could no longer use virtualenv.. – Claudiu Jul 12 '13 at 18:25
  • Thanks for a well-written solution, totally solved my problem. – aendra Aug 29 '13 at 14:40
10

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

  1. cd /Library/Frameworks/Python.framework/Versions/2.7/bin
  2. 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

Alex Wachira
  • 1,225
  • 16
  • 19
  • Worked for me. I'm curious what caused it to end up in this state. – fearless_fool Dec 01 '17 at 02:40
  • Worked for me, although my virtualenv executable was at a different location. Also turns out the pip install virtualenv, outcome, has a waring message indicating that /usr/local/bin/virtualenv should be added to PATH. – Kevin Smith Sep 03 '20 at 14:57
2

In your .bashrc you need to have:

export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Kurt
  • 2,339
  • 2
  • 30
  • 31
  • When i try this (i've put it in both .bashrc which i had to create, and .bash_profile) it tells me this: -bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory – Michahell Mar 16 '13 at 22:34
  • and then open a new bash shell: `bash` or close and reopen your terminal – northben Sep 14 '13 at 20:55
1

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
Newton Karanu
  • 408
  • 5
  • 26
1

(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.

Hamza
  • 171
  • 1
  • 10
rokrfellr
  • 9
  • 2
0

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/

manojlds
  • 290,304
  • 63
  • 469
  • 417
  • I think this is nice if it works out of the box, but 1) it's a workaround for my problem, and 2) i cannot install it using homebrew, which i came to like as a package manager since a few months :) – Michahell Mar 18 '13 at 11:42
  • this i could have expected: if i download pythonbrewm which relies on virtualenv, and i try to use it, guess what: **``futuremaggel:~ supermaggel$ pythonbrew -bash: pythonbrew: command not found futuremaggel:~ supermaggel$ which pythonbrew futuremaggel:~ supermaggel$``** it doesn't know the command or cannot find it.. same problem as i have with virtualenv. – Michahell Mar 18 '13 at 11:49
0

My idea is to add your virtualenv position to the BASH PATH

export PATH=$PATH:/usr/local/python2.7/bin Or change your position

mamian
  • 66
  • 5
0

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

Fandango68
  • 4,461
  • 4
  • 39
  • 74
-1

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.

D.Shawley
  • 58,213
  • 10
  • 98
  • 113
  • 2
    i'm sorry, but my pip/bash fu is not nearly good enough to understand your solution, could you please elaborate? – Michahell Mar 16 '13 at 22:03