Pipenv: команда не найдена

Я новичок в разработке Python и пытаюсь использовать pipenv. Я выполнил команду pip install pipenv, которая успешно работала:

...
Successfully built pipenv pathlib shutilwhich pythonz-bd virtualenv-clone
Installing collected packages: virtualenv, pathlib, shutilwhich, backports.shutil-get-terminal-size, pythonz-bd, virtualenv-clone, pew, first, six, click, pip-tools, certifi, chardet, idna, urllib3, requests, pipenv
...

Однако, когда я запускаю команду pipenv install в новом корневом каталоге проекта, я получаю следующее сообщение: -bash: pipenv: command not found. Я подозреваю, что мне, возможно, потребуется изменить мой .bashrc, но я не понимаю, что добавить в файл или если требуется модификация.

Ответ 1

Это происходит потому, что вы не устанавливаете его глобально (для всей системы). Чтобы он был доступен на вашем path вам нужно установить его с помощью sudo, например так:

$ sudo pip install pipenv

Ответ 2

Это исправлено для меня:

sudo -H pip install -U pipenv

Ответ 3

Если вы выполнили установку пользователя, вам нужно добавить нужную папку в свою переменную PATH.

PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"

См. инструкции по установке pipenv

Ответ 4

У меня та же проблема с pipenv на Mac OS X 10.13 High Seirra, другой Mac работает просто отлично. Я использую Heroku для развертывания своих серверов Django, некоторые в 2.7, а некоторые в 3.6. Итак, мне нужны оба 2.7 и 3.6. Когда HomeBrew устанавливает Python, он сохраняет python указывает на исходный 2.7, а python3 указывает на 3.6.

Проблема может быть связана с $ pip install pipenv. Я проверил /usr/local/bin и pipenv там нет. Итак, я попытался полностью удалить:

$ pip uninstall pipenv

Cannot uninstall requirement pipenv, not installed
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

$ pip3 uninstall pipenv
Skipping pipenv as it is not installed.

Затем переустановите и работайте сейчас:

$ pip3 install pipenv
Collecting pipenv

Ответ 5

Я попробовал это:

python -m pipenv # for python2

python3 -m pipenv # for python3

Надеюсь, это поможет вам.

Ответ 6

OSX, ребята, здесь!

Как ответил @charlax (для меня лучший), вы можете использовать более динамичную команду для установки PATH, но для пользователей Mac это может не сработать, иногда ваш путь USER_BASE, полученный с сайта, неверен, поэтому вам нужно выяснить, где ваш установка на питоне есть.

$ which python3
/usr/local/bin/python3.6

вы получите символическую ссылку, затем вам нужно найти исходную символическую ссылку.

$ ls -la /usr/local/bin/python3.6
  lrwxr-xr-x  1 root  wheel  71 Mar 14 17:56 /usr/local/bin/python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

(это ../../../ означает root)

Итак, вы нашли путь к Python (/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6), тогда вам просто нужно вставить в ~ ~/.bashrc следующим образом:

export PATH="$PATH: /Library/Frameworks/Python.framework/Versions/3.6/bin"

Ответ 7

Где Python хранит пакеты

Прежде чем перейти к команде, которая установит pipenv, стоит понять, где pip устанавливает пакеты Python.

Глобальные пакеты сайта - это место, где Python устанавливает пакеты, которые будут доступны всем пользователям и всем приложениям Python в системе. Вы можете проверить глобальный пакет сайта с помощью команды

python -m site

Например, в Linux с Python 3.7 путь обычно

/usr/lib/python3.7/dist-packages/setuptools

Пользовательские пакеты сайта - это место, где Python устанавливает пакеты, доступные только вам. Но пакеты все равно будут видны всем создаваемым вами проектам Python. Вы можете получить путь с помощью

python -m site --user-base

В Linux с Python 3.7 путь обычно

~/.local/lib/python3.7/site-packages

Использование Python 3.x

В большинстве Linux и других Unix обычно Python 2 и Python 3 устанавливаются параллельно. Исполняемый файл Python 3 по умолчанию почти всегда python3. pip может быть доступен в следующих случаях, в зависимости от вашего дистрибутива Linux

pip3
python3-pip
python36-pip
python3.6-pip

Linux

Избегайте использования pip с sudo! Да, это наиболее удобный способ установки пакетов Python, а исполняемый файл доступен на /usr/local/bin/pipenv, но это также означает, что определенный пакет всегда виден всем пользователям и всем создаваемым вами проектам Python. Вместо этого используйте пакеты сайтов для каждого пользователя вместо --user

pip3 install --user pipenv

pipenv доступен на

~/.local/bin/pipenv

Macos

В macOS Homebrew является рекомендуемым способом установки Python. Вы можете легко обновить Python, установить несколько версий Python и переключаться между версиями, используя Homebrew.

Если вы используете Homebrew'ed Python, pip install --user отключен. Глобальный сайт-пакет находится по адресу

/usr/local/lib/python3.y/site-packages

и вы можете безопасно устанавливать пакеты Python здесь. Python 3.y также ищет модули в:

 /Library/Python/3.y/site-packages
 ~/Library/Python/3.y/lib/python/site-packages

Окна

По устаревшим причинам Python установлен в C:\Python37. Исполняемый файл Python обычно называется py.exe, и вы можете запустить pip с помощью py -m pip.

Пакеты глобального сайта установлены в

C:\Python37\lib\site-packages

Так как вы обычно не делитесь своими устройствами с Windows, также можно установить глобальный пакет

py -m pip install pipenv

pipenv теперь доступен на

C:\Python37\Scripts\pipenv.exe

Я не рекомендую устанавливать пакеты Python в Windows с --user, потому что каталог пользовательских пакетов сайта по умолчанию находится в вашем роуминговом профиле Windows

C:\Users\user\AppData\Roaming\Python\Python37\site-packages 

Профиль роуминга используется в службах терминалов (удаленный рабочий стол, Citrix и т.д.) и при входе/выходе из системы в корпоративной среде. Медленный вход в систему, выход из системы и перезагрузка в Windows могут быть вызваны большим перемещаемым профилем.

Ответ 8

Глобальная установка pipenv может оказать неблагоприятное влияние, переписав глобальную /system -m anaged установку pip, что приведет к ошибкам импорта при попытке запустить pip.

Вы можете установить pipenv на уровне пользователя:

pip install --user pipenv

Это должно установить pipenv на уровне пользователя в /home/username/.local, чтобы он не конфликтовал с глобальной версией pip. В моем случае это не сработало после запуска переключателя --user, поэтому я однажды выполнил более длинную команду "исправить то, что испортил", чтобы восстановить управляемую среду системы:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

^ найдено здесь: ошибка после обновления pip: не удается импортировать имя 'main'

и затем сделал следующее:

mkdir/home/username/.local... если он еще не существует

export PYTHONUSERBASE=/home/username/.local

Убедитесь, что экспорт вступил в силу (побил меня один раз во время этого процесса):

echo $PYTHONUSERBASE

Затем я запустил pip install --user pipenv и все было хорошо. Затем я мог запустить pipenv из CLI, и он не перезаписывал глобальный/системный -m модуль, управляемый pip. Конечно, это зависит от пользователя, поэтому вы должны убедиться, что вы устанавливаете pipenv таким образом, работая как пользователь, которого вы хотите использовать pipenv.

Рекомендации:

https://pipenv.readthedocs.io/en/latest/diagnose/#no-module-named-module-name https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation -of-pipenv https://pip.pypa.io/en/stable/user_guide/#user-installs

Ответ 9

Возможно, вы захотите установить pipenv через pipsi.

curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get -pipsi.py | python3
pipsi install pew
pipsi install pipenv

К сожалению, есть некоторые проблемы с macOS + python3 на момент написания, см. 1, 2. В моем случае мне пришлось изменить bashprompt на #!/Users/einselbst/.local/venvs/pipsi/bin/python

Ответ 10

Это исправлено для меня:

sudo -H pip install -U pipenv

Ответ 11

В некоторых случаях старой версии pip:

sudo easy_install pip
sudo pip install pipenv

Ответ 12

Для пользователей окон это может быть связано с конфликтом установки с virtualenv. Для меня это сработало, когда я сначала удалил virtualenv и pipenv, а затем установил только pipenv.

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

Сейчас у меня работает pipenv install xxx

Ответ 13

После установки pipenv (sudo pip install pipenv) я продолжал получать ошибку "Команда не найдена" при попытке запустить команду pipenv shell.

Я наконец исправил это с помощью следующего кода:

pip3 install pipenv
pipenv shell