У меня проблемы с pipenv
, когда при запуске pipenv shell
пакеты сайтов виртуальной среды не загружаются.
Ожидаемое поведение:
# In a docker container:
$ pipenv shell
Creating a virtualenv for this project…
Pipfile: /path/to/Pipfile
Using /usr/local/bin/python3.6 (3.6.9) to create virtualenv…
⠸Already using interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local'
New python executable in /root/.local/share/virtualenvs/my-package-FXhqk7jd/bin/python3.6
Also creating executable in /root/.local/share/virtualenvs/my-package-FXhqk7jd/bin/python
Installing setuptools, pip, wheel...
done.
Virtualenv location: /root/.local/share/virtualenvs/my-package-FXhqk7jd
Launching subshell in virtual environment…
$ . /root/.local/share/virtualenvs/my-package-FXhqk7jd/bin/activate
(my-package)
$ python
Python 3.6.9 (default, Feb 13 2020, 20:55:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/root/.local/share/virtualenvs/my-package-FXhqk7jd/lib/python36.zip', '/root/.local/share/virtualenvs/my-package-FXhqk7jd/lib/python3.6', '/root/.local/share/virtualenvs/my-package-FXhqk7jd/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6', '/root/.local/share/virtualenvs/my-package-FXhqk7jd/lib/python3.6/site-packages']
Но при установке на мой локальный компьютер я получаю:
[Fri Feb 21 15:16] $ pipenv shell
Launching subshell in virtual environment…
. /home/thall/.local/share/virtualenvs/my-package-9uPP5G4Z/bin/activate
(my-package)
$ python
Python 3.6.9 (default, Feb 21 2020, 11:34:54)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/home/thall/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages']
>>>
, которые показывают мои local
site-packages
, а не пакеты virtualenv
сайта.
Скажем, у меня установлен requests
через Pipfile:
$ pipenv shell
$ python
>> import requests
# etc... Module Not Found
Когда я запускаю pipenv run python -c "import requests
, он работает.
Так что pipenv shell
не загружает сайт virtualenv пакеты, но pipenv run ...
делает.