pipenv не добавляет путь .local / share / virtualenvs / site-packages - PullRequest
0 голосов
/ 21 февраля 2020

У меня проблемы с 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 ... делает.

...