I've been using virtualenvwrapper for years, not sure what has changed.
$ mkvirtualenv foobar
created virtual environment CPython3.10.4.final.0-64 in 110ms
creator CPython3Posix(dest=/home/chris/.virtualenvs/foobar, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/chris/.local/share/virtualenv)
added seed packages: pip==22.1.2, setuptools==62.6.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /home/chris/.virtualenvs/foobar/bin/predeactivate
ERROR: Environment '/home/chris/.virtualenvs/foobar' does not contain an activate script.
And that is true -- the newly created /home/chris/.virtualenvs/foobar directory doesn't even have a "bin" directory.
I've seen this post, but the fixes there don't change anything:
Installation fails Virtualenvwrapper and Virtualenvs does not contains an activate script
I'm running Ubuntu 2022.04, fully patched.
UPDATE
I suspect that the issue was caused by conflicts between packages installed via apt get
, sudo pip3 install
, etc. Things are probably not helped by the new pattern of installing packages in .local
. (My system is pretty old and has gone through a lot of OS and Python upgrades.)
In any case, I was able to get this working by:
- Installing pyenv
- Within pyenv, installing python 3.9
- Setting 3.9 as the default python in pyenv
- initializing my pipenv with
pipenv shell 'pyenv which python'
(those should be backticks)