Проблема
На шаге 1 вы устанавливаете pipenv вместе с напитком. Установка brew pipenv
также устанавливает среду Python, которая используется напрямую. Сама команда находится на вашем пути, поэтому вы можете вызывать ее независимо от загруженной вами virtualenv.
На шаге 2 вы устанавливаете и загружаете pyenv virtualenv. Загрузка pyenv virtualenv меняет ваш путь. Когда вы используете pip сейчас, это pipv 3.6.3, и он будет установлен в этот pyenv. Поэтому, когда на шаге 3 вы запускаете pip install jupyter requests
, они переходят в pyenv virtualenv.
Когда вы запустите pipenv
, на шаге 4 он будет использовать свой собственный питон, чтобы он мог загрузить себя. Ваша загрузка pipenv virtualenv на шаге 5 затем добавляет папку bin для этого в ваш путь, позволяя вам запускать все, что вы устанавливаете. Это не отменяет изменения, сделанные pyenv. Когда вы запускаете pip
на шаге 6, он запускается внутри этого pipenv virtualenv и печатает ограниченный список установленных пакетов.
На шаге 7 вы запускаете jupyter
. Это не внутри pipenv virtualenv, а внутри pyenv. Дополнения пути pyenv все еще существуют, так что они работоспособны. Команда jupyter
является bash-скриптом и выполняет магию для сброса пути python перед запуском Вот как он может найти модуль requests
на шаге 8.
Вы наконец запустили какую-то форму Python Repl. Предположительно это находится в вашем pipenv virtualenv, поэтому загружает модули, которые находятся в этой среде.
Решение
Вам нужно выгрузить глобальный pyenv. Поскольку вы установили пакеты в вашу версию Python 3.6.3, я бы также удалил все установленные вами версии virtualenvs и python. Вы можете просто переустановить их.
Ваша установка pipenv в порядке, она может остаться. Это также основной инструмент, который вы должны использовать. Вам не нужно выполнять pip
или pyenv
напрямую.
Вам следует установить jupyter в pipenv virtualenv, и тогда у вас должна быть установка, которая работает только при загрузке pipenv virtualenv.