28

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
21.3k20 gold badges98 silver badges112 bronze badges
asked Mar 16, 2013 at 19:35
7
  • 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. Commented Mar 16, 2013 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? Commented Mar 16, 2013 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?? Commented Mar 16, 2013 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? Commented Mar 17, 2013 at 5:19
  • See this screenshot d.pr/i/paQQ for the first 3 questions, and this one for installing virtualenv: d.pr/i/c4pE and virtualenvwrapper: d.pr/i/L7E0 Also, i had no errors installing virtualenv at any time, i did have warnings.. Commented Mar 18, 2013 at 11:26

9 Answers 9

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
21.3k20 gold badges98 silver badges112 bronze badges
answered Mar 19, 2013 at 1:58
Sign up to request clarification or add additional context in comments.

2 Comments

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..
Thanks for a well-written solution, totally solved my problem.
11

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

answered Sep 23, 2016 at 1:39

3 Comments

Worked for me. I'm curious what caused it to end up in this state.
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.
Works! Similar to Kevin, my executable was in a slightly different location, but still within python's folder in user's library.
2

In your .bashrc you need to have:

export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
answered Mar 16, 2013 at 20:45

2 Comments

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
and then open a new bash shell: bash or close and reopen your terminal
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
3013 silver badges10 bronze badges
answered Dec 26, 2018 at 18:40

Comments

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
answered Dec 5, 2017 at 7:17

Comments

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/

answered Mar 17, 2013 at 18:41

2 Comments

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

answered Oct 18, 2017 at 3:13

Comments

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

answered Jul 13, 2018 at 3:01

Comments

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

answered Mar 16, 2013 at 19:38

1 Comment

i'm sorry, but my pip/bash fu is not nearly good enough to understand your solution, could you please elaborate?

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.