139

I'm trying to setup virtualenvwrapper on OSX, and all the instructions and tutorials I've found tell me to add a source command to .profile, pointing towards virtualenvwrapper.sh. I've checked all the python and site-packages directories, and I can't find any virtualenvwrapper.sh. Is this something I need to download separately? Is pip not installing correctly?

This is the contents of /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper:

hook_loader.py      hook_loader.pyc     project.py      project.pyc     user_scripts.py     user_scripts.pyc

As you can see, no virtualenvwrapper.sh. Where is it?

zakdances
  • 16,715
  • 30
  • 94
  • 155

24 Answers24

172

You can use the find command to search for a file:

find / -name virtualenvwrapper.sh

This will search all directories from the root for the file.


on ubuntu 12.04 LTS, installing through pip, it is installed to

/usr/local/bin/virtualenvwrapper.sh


on ubuntu 17.04, installing through pip as a normal user, it is installed to

~/.local/bin/virtualenvwrapper.sh

dm03514
  • 50,477
  • 16
  • 96
  • 131
88

did you already try this ?

$ which virtualenvwrapper.sh
hepidad
  • 1,448
  • 13
  • 15
  • 1
    this works, but why doesn't `which virtualenvwrapper` work? Isn't that the name of the command in the environmental variables? – zakdances May 23 '13 at 04:49
  • 10
    To help anybody else asking this same question about why `which` doesn't work, it's because virtualenvwrapper is actually using its custom bash completion file to add purely virtual commands, of which the common `virtualenvwrapper` command is one. Consequently, there is no physical file on the drive for `which` to point to. – Tim Jul 29 '13 at 19:24
  • 1
    @yourfriendzak, the bash script `virtualenvwrapper.sh` needs to be sourced in your shell before any of the commands (`mkvirtualenv`, `rmvirtualenv`, etc.) are available, i.e. `$ source /path/to/virtualenvwrapper.sh` – tenfishsticks May 15 '15 at 15:09
  • This was much faster than `find` but both worked. Mine was located in `usr/local/bin` on OS X. – danagerous Feb 14 '18 at 05:17
56

I just reinstalled it with pip.

sudo pip uninstall virtualenvwrapper
sudo pip install virtualenvwrapper

And this time it put it in /usr/local/bin.

user2625596
  • 561
  • 4
  • 2
  • This worked for me on Ubuntu, also allowing `which virtualenvwrapper.sh` to work, which had been returning nothing until I did this. – eddiemoya Jul 02 '15 at 17:07
  • After this command on Fedora 23 I have found virtualenvwrapper.sh only in usr/bin . – tomaskazemekas Mar 24 '16 at 12:25
  • 1
    Had initially installed it with `apt-get` and it landed in `/usr/share/virtualenvwrapper/virtualenvwrapper.sh`, then purged it and did your trick. – Hauke Jun 06 '16 at 15:10
  • This worked for me in Ubuntu 14.04 if you `find / -name xxxx.sh` didn't find anything. – alanwsx Feb 06 '19 at 19:15
53

The exact path where virtualenvwrapper.sh is stored/located varies from OS to OS. Even with in same OS, it varies from version to version. So we need a generic solution that works for all OS versions.

Easiest way I have found to find its path is: Do

pip uninstall virtualenvwrapper

This will prompt a confirmation. Say "No" But first line of confirmation shows the path of virtualenvwrapper.sh (Prompt gives a list of files it will delete, if you say Yes. First entry in this list contains path to virtualenvwrapper.sh in your machine)

Anuj Gupta
  • 4,985
  • 5
  • 29
  • 52
15

or, like I did..just uninstall virtualenvwrapper

sudo pip uninstall virtualenvwrapper

and then install it with easy_install

sudo easy_install virtualenvwrapper

this time I found the file "/usr/local/bin/virtualenvwrapper.sh" installed... Before that I weren't finding that file anywhere even by this command

find / -name virtualenvwrapper.sh

iMitwe
  • 1,151
  • 15
  • 32
11

On Mac OS

which virtualenvwrapper.sh

u got

/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

and u can

sudo ln /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh /usr/local/bin/virtualenvwrapper.sh

and in your .bash_profile

source /usr/local/bin/virtualenvwrapper.sh

or u can

source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
Tianqi Tong
  • 146
  • 1
  • 5
7

In OS X 10.8.2, with Python 2.7:

/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

Jules
  • 13,397
  • 12
  • 50
  • 92
JohnyMoSwag
  • 83
  • 1
  • 5
7

In OSx EI captain, I installed the virtualenvwrapper as

sudo pip3 install virtualenvwrapper

, however I cannot find the virtualenvwrapper.sh in /user/local/bin, it was finally found at /Library/Frameworks/Python.framework/Versions/3.4/bin/virtualenvwrapper.sh , and you can make an soft link to /usr/local/bin as

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/virtualenvwrapper.sh /usr/local/bin/virtualenvwrapper.sh, and everything you can just follow the setup guide as the official document does. Good luck!

jackotonye
  • 2,859
  • 18
  • 28
Shawn Zhang
  • 145
  • 1
  • 4
5

For me it was in :

~/Library/Python/2.7/bin/virtualenvwrapper.sh

(With OS X, with a pip install --user installation)

vmonteco
  • 10,994
  • 12
  • 43
  • 73
4

I have the same problem. If you have older version of virtualenvwrapper, then pip wont work.

download src from http://pypi.python.org/pypi/virtualenvwrapper/3.6 and python setup.py install. Then the problem solved.

haijin
  • 908
  • 2
  • 10
  • 17
4

For RPM-based distributions(like Fedora 19), after running the sudo pip install virtualenvwrapper command, you may find the file at:

/usr/bin/virtualenvwrapper.sh
3

Installed it using pip on Ubuntu 15.10 using a normal user, it was put in ~/.local/bin/virtualenvwrapper.sh which I found by running:

$ find / -name virtualenvwrapper.sh 2>/dev/null

tayfun
  • 2,839
  • 1
  • 16
  • 21
2

Using

find / -name virtualenvwrapper.sh

I got a TON of "permissions denied"s, and exactly one printout of the file location. I missed it until I found that file location when I uninstall/installed it again with pip.

In case you were curious, it was in

/usr/local/share/python/virtualenvwrapper.sh
Aviendha
  • 653
  • 5
  • 16
  • 2
    to get rid of 'permission denied' you can redirect STDERR to /dev/null. For example: $ find / -name virtualenvwrapper.sh 2>/dev/null – psycat Mar 21 '15 at 13:50
2

In my case (OSX El Capitan, version 10.11.5) I needed to edit the .profile like so:

In the terminal:

vim ~/.profile

export WORKON_HOME=$HOME/.virtualenvs
export MSYS_HOME=C:\msys\1.0
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh                                                                                   

And then reload the profile (that it will be availuble in the current session.)

source ~/.profile

Hope it will help someone.

Idan Magled
  • 1,952
  • 1
  • 21
  • 30
2
/usr/share/virtualenvwrapper/virtualenvwrapper.sh

I've installed it on Ubuntu 16.04 and it resulted in this location.

2

I can find one in macOS Mojave (10.14) while playing with virtualenvwrapper-4.8.4

/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh

svetkesh
  • 21
  • 1
1

Although this is an OS X question, here's what worked for me on Linux (Red Hat).

My virtualwrapper.sh was in

~/.local/bin/virtualenvwrapper.sh

This is probably because I installed virtualenvwrapper locally, using the --user flag...

pip install --user virtualenvwrapper

...as an alternative to the risky practice of using sudo pip.

jkdev
  • 9,037
  • 14
  • 52
  • 75
0
/usr/local/bin/virtualenvwrapper.sh
user650654
  • 4,255
  • 2
  • 31
  • 37
  • 3
    `No such file or directory` I also browsed the /usr/local/bin directory and couldn't find anything that looked related to virtualenv or virtualenvwrapper – zakdances Sep 28 '12 at 21:02
0

I had the same issue in with the beagle bone black(debian).

Manually downloading the package and installing worked for me.

Robert
  • 5,191
  • 43
  • 59
  • 113
Sudeep
  • 99
  • 1
  • 4
0

For Ubuntu
If you just installed it, check the output on Terminal, I'm posting mine :

Running setup.py install for virtualenv-clone    
Installing virtualenv-clone script to /home/username/.local/bin
Successfully installed virtualenvwrapper virtualenv virtualenv-clone stevedore pbr six
Cleaning up...

Here the second line tells you the path. For me it was at /home/username/.local/bin

abhinavDAIICT
  • 143
  • 1
  • 2
  • 11
0

pip will not try to make things difficult for you on purpose.

The thing is commands based files are always installed in /bin folders they can be anywhere on the system path.

I had the same problem and I found that I have these files in my

~/.local/bin/

folder instead of

/usr/loca/bin/

which is the common case, but I think they changed the default path to

~ or $HOME

directory because its more isolate for the pip installations and provides a distinction between apt-get packages and pip packages.

So coming to the point you have two choices here either you go to your .bashrc and make changes like this

# for virtualenv wrapper
export WORKON_HOME=$HOME/Envs
export PROJECT_HOME=$HOME/Devel
source $HOME/.local/bin/virtualenvwrapper.sh

and than create a directory virtualenvwrapper under /usr/share/ and than symlink your virtualwrapper_lazy.sh like this

sudo ln -s ~/.local/bin/virtualenvwrapper_lazy.sh /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh

and you can check if your workon command is working which will list your existing virtualenv's.

naveen.panwar
  • 272
  • 8
  • 17
0

If you execute pip install virtualenvwrapper without sudo as a normal user pip will run but won't copy the files in the required locations because the lack of permissions.

mortiz@florida:~# sudo pip3 install virtualenvwrapper

Use sudo and the files will be created under their respective paths:

root@florida:/usr/local/bin# ls -ltr
total 8008
-rwxr-xr-x 1 root staff 8136192 Jun 11 17:45 chromedriver
-rwxr-xr-x 1 root staff   41697 Sep  5 16:06 virtualenvwrapper.sh
-rwxr-xr-x 1 root staff    2210 Sep  5 16:06 virtualenvwrapper_lazy.sh
-rwxr-xr-x 1 root staff     215 Sep  5 16:06 pbr
-rwxr-xr-x 1 root staff     218 Sep  5 16:06 virtualenv-clone
-rwxr-xr-x 1 root staff     213 Sep  5 16:06 virtualenv
root@florida:/usr/local/bin# 

Worked for me on Debian GNU/Linux 9

Miguel Ortiz
  • 1,254
  • 7
  • 20
-1

in my case: /home/username/.local/bin/virtualenvwrapper.sh

Yuanxu Xu
  • 107
  • 1
  • 3
-2

Have you installed it using sudo? Was the error in my case.

Bruce
  • 716
  • 4
  • 21