Hi!
I wanted to maintain a set of frequently used Python packages and add them to project-based virtualenvs.
So I created a virtualenv 'common' to maintain all those common packages.
I also adjusted the postmkvirtualenv hook as follows:
-------------------
#!/bin/zsh
# This hook is sourced after a new virtualenv is activated.
PROJECTS_HOME=${PROJECTS_HOME:=z}
D="$HOME/${PROJECTS_HOME}"
PY="3.7"
proj_name=$(basename $VIRTUAL_ENV)
mkdir $D/$proj_name
add2virtualenv $D/$proj_name
add2virtualenv $WORKON_HOME/common/lib/python$PY/site-packages
cd $D/$proj_name
setvirtualenvproject
git init
-----------------
That looks fairly obvious, and I can eg. say "workon abc" to start working on the project 'xyz', and then access packages which I have installed in 'common'.
But any attempt to use pip while 'xyz' is active, fails with a traceback.
(xyz)$ pip
Traceback (most recent call last):
File "/home/debian/.virtualenvs/xyz/bin/pip", line 6, in <module>
from pip._internal import main
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
from pip._internal.cli import cmdoptions
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/cli/cmdoptions.py", line 24, in <module>
from pip._internal.models.search_scope import SearchScope
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/models/search_scope.py", line 11, in <module>
from pip._internal.utils.misc import normalize_path, redact_password_from_url
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 58, in <module>
from typing import cast, Tuple
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/typing.py", line 1357, in <module>
class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
File "/home/debian/.virtualenvs/common/lib/python3.7/site-packages/typing.py", line 1005, in __new__
self._abc_registry = extra._abc_registry
AttributeError: type object 'Callable' has no attribute '_abc_registry'
I'm on Debian Buster, with Python 3.7.3 and virtualenvwrapper 4.3.1.
What gives?