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, но мне неясно, что добавить в файл или если изменение даже необходимо.

29 ответов

Решение

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

$ sudo pip install pipenv

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

sudo -H pip install -U pipenv

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

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

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

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

python -m pipenv # for python2

python3 -m pipenv # for python3

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

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

Где 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.

Если вы используете самодельный 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

Windows

По причинам устаревания 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 могут быть вызваны большим перемещаемым профилем.

  1. сначала установите pip, используя следующую команду
         pip3 install pipenv 
  1. Теперь проверьте, отображается ли pipenv, используя следующую команду, если вы видите что-то вродеcommand not found: pipenvиспользуйте следующие команды

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

В Linux и Mac мы можем сделать это следующим образом.

         python3 -m site --user-base

эта команда отобразит что-то вроде этого

         /some_directory/Python/3.9

используйте путь, отображаемый в вашем терминале, и добавьте/binв конце концов, теперь ваш путь выглядит так

         /some_directory/Python/3.9/bin

теперь вам нужно указать путь, если вы используете тип zsh (z shell)nano ~/.zshrcв терминале или если вы используете редактор кода, такой как VSCode, и путь установлен для типа VScodecode ~/.zshrcесли вы используете bash используйтеnano ~/.bashrcилиcode ~/.bashrc

в файл наконец добавьте следующую строку

          export PATH="$PATH:/somedirectory/Python/3.9/bin"

сохраните файл и выйдите из терминала, теперь откройте новый терминал и введитеpipenv --versionвы должны увидеть что-то вродеpipenv, version 2022.10.25

в Windows мы можем сделать следующее

          python -m site --user-site

вы должны увидеть что-то вроде

          C:\Users\Username\AppData\Roaming\Python36\site-packages`

теперь заменитьsite-packagesсScripts. это может вернуться

          C:\Users\Username\AppData\Roaming\Python36\Scripts

Вы можете установить ПУТЬ пользователя на постоянной основе в Панели управления . Возможно, вам придется выйти из системы, чтобы изменения PATH вступили в силу.

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

(этот ../../../ означает корень)

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

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

Я не знаю, что произошло, но следующее сработало (под mac os catalina)

$ brew install pipenv

$ brew update pipenv

после этого я могу использовать

$ pipenv install [package_name]

В этом случае вам просто нужно добавить двоичный путь к вашему bash. Например, если вы используете ZSH, вам нужно отредактировать файл .zshrc от имени администратора, а затем добавить код, упомянутый @charlax в комментариях выше:

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

Для тех, кто установил его с помощью sudo pip3 install pipenv, вам нужно использовать python3 -m pipenv shell

Глобальная установка pipenv может оказать неблагоприятное влияние, переписав глобальную / управляемую системой установку 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, и он не переписал глобальный / управляемый системой модуль pip. Конечно, это зависит от пользователя, поэтому вы должны убедиться, что устанавливаете pipenv таким образом, работая как пользователь, которому хотите использовать pipenv.

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

https://pipenv.readthedocs.io/en/latest/diagnose/ https://pipenv.readthedocs.io/en/latest/install/ https://pip.pypa.io/en/stable/user_guide/

ОС: Linux
Версия Pip: pip3
sudo -H pip3 install -U pipenv

ОС: Windows
Версия Pip: любая
sudo -H pip install -U pipenv

На Mac вам может потребоваться:

      pip3 install pipenv

Потом, cd в корневой каталог, чтобы найти файл.

Затем добавьте это в путь

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

Примечание. 3.9 - это версия Python, работающая в вашей системе. Примечание. Вы можете получить доступ к .zshrcиспользуя cmd+ shift+ .в корневом каталоге ... файл по умолчанию скрыт

Сохраните и перезапустите свой терминал

Я использую zsh на своем Mac, у меня сработало сначала установить pipenv

      pip3 install --user pipenv

Затем я изменил ПУТЬ в ~ / .zshrc

      vi ~/.zshrc

В редакторе нажмите i, чтобы вставить текст:

      export PATH="/Users/yourUser/Library/Python/3.9/bin:$PATH"

Нажмите esc и напишите :wq! Закройте терминал и снова откройте его. И напоследок напиши pipenv

Этот способ работал у меня с использованием macOS BigSur 11.1

Это легко исправить, установив pipenv с помощью моего центрального менеджера пакетов (apt)

      sudo apt install pipenv

Вы можете легко установить pipenv с помощью менеджера пакетов (apt, yum, brew), и он добавит его непосредственно в ваши переменные $PATH.

Более того, он работает на zsh. Я использую zsh в Ubuntu и пытался добавить pipenv в $PATH и другие решения, но это не сработало, пока я не использовал apt для его установки.

КАК СДЕЛАТЬ PIPENV ОСНОВНОЙ КОМАНДОЙ

Pipenv с Python3 необходимо запускать как "$ python -m pipenv [command]" или "$ python3 -m pipenv [command]"; команда "python" в начале зависит от того, как вы активируете Python в своей оболочке. Чтобы исправить и установить "$ pipenv [command]": [пример в Git Bash]

$ cd ~
$ code .bash_profile

Первая строка необходима, поскольку она позволяет вам получить доступ к файлу.bash_profile. Вторая строка открывает.bash_profile в VSCode, поэтому вставьте команду редактора кода по умолчанию. На этом этапе вам нужно (в.bash_profile) отредактировать файл, добавив эту строку кода:

alias pipenv='python -m pipenv'

Затем сохраните файл и в Git Bash введите:

$ source .bash_profile

Затем вы можете использовать pipenv как команду где угодно, например: $ pipenv shell Будет работать.

Этот метод использования будет работать для создания команд в Git Bash. Например:

alias python='winpty python.exe'

введенный в.bash_profile и: $ source .bash_profile позволит Python запускаться как "python".

Пожалуйста.

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

sudo -H pip install -U pipenv

Если вы находитесь на MAC

sudo -H pip3 установить pipenv

В Mac OS X Catalina похоже, что он следует пути Linux. Использование любого из:

pip install pipenv
pip3 install pipenv
sudo pip install pipenv
sudo pip3 install pipenv

По сути, здесь устанавливается pipenv:

/Users/mike/Library/Python/3.7/lib/python/site-packages/pipenv

Но это не исполняемый файл, поэтому его никогда не находят. Единственное, что у меня сработало, это

pip install --user pipenv

Это, кажется, приводит к __init__.py файл в указанном выше каталоге, содержащий содержимое для правильного отображения pipenv команда.

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

Пакет pipenv определенно кажется довольно разборчивым.

Это просто решило это для меня, если вы работаете в Windows.

      pip install pipenv

Во-вторых, замените свой <username>по следующим путям и добавьте их в переменную среды PATH:

      c:\Users\<username>\AppData\Roaming\Python\Python38\Site-Packages
C:\Users\<username>\AppData\Roaming\Python\Python38\Scripts

Вам нужно закрыть командную строку и снова открыть ее. В-третьих, введите следующую команду, чтобы проверить правильность установки pipenv:

      pipenv -h

Я надеюсь, что это поможет и вам!

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

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

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

Вероятно, он установлен в вашем пользовательском пути.

например, если ваш пользователь (имя пользователя) tom, проверьте этот путь

/home/том/.local/bin/pipenv

если в пути существует pipenv, вы можете переместить или скопировать его в общий путь пользователя, чтобы вы могли выполнять pipenv из всех сеансов терминала.

      cp /home/tom/.local/bin/pipenv /usr/bin/

тогда вы сможете запустить pipenv

Вот как я успешно разрешил «Pipenv: Command Not Found» на моем Mac OSX

  1. Вы должны изменить права собственности на эти каталоги на своего пользователя.

    sudo chown -R $(whoami) /usr/local/share

  2. убедитесь, что у вашего пользователя есть разрешение на запись.

    chmod u+w /usr/local/share

  3. Затем рассмотрите возможность установки с помощью Homebrew:

    варить обновление
    варить установить pyenv

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

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

pip3 install pipenv
pipenv shell

Вы могли бы рассмотреть возможность установки 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

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

sudo easy_install pip
sudo pip install pipenv

Сначала проверьте, установлен ли pipenv:

      pipenv --version

Если в вашей системе нет версии, выполните следующую команду, чтобы установить pipenv

      sudo aptitude install pipenv 

Для меня в Windows работала командная строка от имени администратора, а затем глобальная установка pipenv: python -m pip install pipenv.

Другие вопросы по тегам