virtualenv virtualenvwrapper virtualenv: error: unrecognized arguments: --no-site-packages

chris Frisina picture chris Frisina · Mar 21, 2020 · Viewed 15.5k times · Source

I am trying to upgrade python from 3.6 to 3.8. I was successfully using virtualenv/wrapper successfully (although only one environment and no bells, whistles, or hooks), but the upgrade has not gone smoothly. I deleted everything and tried to start again. I am trying to make a new environment with mkvirtualenv test, and I am now getting the error:

virtualenv: error: unrecognized arguments: --no-site-packages after it gives a man(ual) suggestion on how to invoke virtualenv, which leads me to believe virtualenvwrapper is working, but I've missed something.

Here are my details:

terminal (osx - 10.13.6 (17G65))

today@5 ~/dev/MST/server(master)$ which python
/usr/bin/python
today@5 ~/dev/MST/server(master)$ which python3
/usr/local/bin/python3
today@5 ~/dev/MST/server(master)$ which pip
/usr/local/bin/pip
today@5 ~/dev/MST/server(master)$ which pip3
today@5 ~/dev/MST/server(master)$ pip -V
-bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory
today@5 ~/dev/MST/server(master)$ pip3 -V
pip 20.0.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
today@5 ~/dev/MST/server(master)$ pip3 install virtualenv virtualenvwrapper
Requirement already satisfied: virtualenv in /usr/local/lib/python3.8/site-packages (20.0.13)
Requirement already satisfied: virtualenvwrapper in /usr/local/lib/python3.8/site-packages (4.8.4)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.8/site-packages (from virtualenv) (3.0.12)
Requirement already satisfied: appdirs<2,>=1.4.3 in /usr/local/lib/python3.8/site-packages (from virtualenv) (1.4.3)
Requirement already satisfied: six<2,>=1.9.0 in /usr/local/lib/python3.8/site-packages (from virtualenv) (1.14.0)
Requirement already satisfied: distlib<1,>=0.3.0 in /usr/local/lib/python3.8/site-packages (from virtualenv) (0.3.0)
Requirement already satisfied: stevedore in /usr/local/lib/python3.8/site-packages (from virtualenvwrapper) (1.32.0)
Requirement already satisfied: virtualenv-clone in /usr/local/lib/python3.8/site-packages (from virtualenvwrapper) (0.5.3)
Requirement already satisfied: pbr!=2.1.0,>=2.0.0 in /usr/local/lib/python3.8/site-packages (from stevedore->virtualenvwrapper) (5.4.4)
today@5 ~/dev/MST/server(master)$ which virtualenv
/usr/local/bin/virtualenv
today@5 ~/dev/MST/server(master)$ which virtualenvwrapper
today@5 ~/dev/MST/server(master)$ 
today@5 ~/dev/MST/server(master)$ workon
today@5 ~/dev/MST/server(master)$ 
today@5 ~/dev/MST/server(master)$ mkvirtualenv test
usage: virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed]
                  [--activators comma_sep_list] [--clear] [--system-site-packages] [--symlinks | --copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip]
                  [--no-setuptools] [--no-wheel] [--symlink-app-data] [--prompt prompt] [-h]
                  dest
virtualenv: error: unrecognized arguments: --no-site-packages

~/.bash_profile

#…
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'

source /usr/local/bin/virtualenvwrapper.sh
#…

NB -

  • trying to install virtualenvwrapper it says version 4.8.4, but the online docs say it is in 5.x

Answer

Anthony Sottile picture Anthony Sottile · Mar 21, 2020

--no-site-packages is the default for virtualenv (and has been for like 5 years?) you can remove export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' from your .bashrc

it appears in virtualenv>=20 that this option was removed