Pipenv: comando no encontrado

119

Soy nuevo en el desarrollo de Python e intento usar pipenv. Ejecuté el comando pip install pipenv, que se ejecutó correctamente:

...
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
...

Sin embargo, cuando ejecuto el comando pipenv installen un directorio del proyecto raíz fresca recibo el mensaje siguiente: -bash: pipenv: command not found. Sospecho que podría necesitar modificar mi .bashrc, pero no tengo claro qué agregar al archivo o si es necesario modificarlo.

lgants
fuente
1
Compruebe /usr/local/bin/pipenv- ¿está ahí? Está /usr/local/binen tu $PATH?
Phd
3
El mismo problema aquí: pipenv construido con éxito pero no hay señales de la carpeta pipenv en / usr / local / bin.
Hecho el
¿Está instalando a pipenvnivel mundial?
dethos

Respuestas:

126

Eso sucede porque no lo está instalando globalmente (en todo el sistema). Para que esté disponible en su path, debe instalarlo usando sudo, así:

$ sudo pip install pipenv
dethos
fuente
86
para los copy-and-peters, este comando generalmente se ejecuta como sudo -H pip install -U pipenv(por ejemplo, en ubuntu), instalándose pipenven /usr/local/bin. La alternativa es una instalación del usuario, por ejemplo, $ pip install pipenvque es lo mismo que $ pip install --user pipenv, que instala cosas $HOME/.local/..., lo que requiere PATHque se modifique como en la otra respuesta, stackoverflow.com/a/47111756/127971
michael
2
Esto me consigue cada vez con un nuevo entorno de escritorio.
Ligemer
@michael Tienes la mejor respuesta en comentario. ¡Vergüenza! Publíquelo como respuesta hombre
Rahul
@michael esto es lo único que funcionó para mí, ¡muchas gracias!
jaycarleton
@michael Gracias por la respuesta. Confirmado que funcionó.
Ultrasonido
128

Esto me lo arregló:

sudo -H pip install -U pipenv
tuan ly
fuente
3
¡Funcionó perfectamente! Por casualidad, ¿sabe qué significan estos comandos (-H y -U)?
Babbz77
12
@ Babbz77 La opción -H (INICIO) para sudo solicita que la política de seguridad establezca la variable de entorno INICIO en el directorio de inicio del usuario de destino (raíz de forma predeterminada) según lo especificado por la base de datos de contraseñas. La -U para la instalación de pip actualiza todos los paquetes especificados a la versión más reciente disponible. El manejo de las dependencias depende de la estrategia de actualización utilizada.
Andrey Vaganov
Muchas gracias, estoy luchando mucho, pero tu respuesta me salvó.
vdkotian
1
Esta debería ser la respuesta. Funcionó perfectamente. Busqué un rato. Gracias
Ivan Gonzalez
62

Si ha realizado una instalación de usuario, deberá agregar la carpeta correcta a su PATHvariable.

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

Consulte las instrucciones de instalación de pipenv

charlax
fuente
Esto fue útil, ya que necesitaba ejecutarlo pipenv runy las instrucciones de instalación me lo indicaban.
eksortso
1
¡Debe probar python3 -m sitepara ver si existe el directorio --user-base!
Claudio Santos
Debe aceptarse la respuesta, ¡gracias!
Maxime Lafarie
20

Probé esto:

python -m pipenv # for python2

python3 -m pipenv # for python3

Espero que esto le pueda ayudar.

usuario9563571
fuente
1
gracias, ¿por qué necesito incluir python -m cada vez que ejecuto pipenv?
Suisied el
14

Tengo el mismo problema con pipenvMac OS X 10.13 High Seirra, otra Mac funciona bien. Utilizo Heroku para implementar mis servidores Django, algunos en 2.7 y otros en 3.6. Entonces, necesito 2.7 y 3.6. Cuando HomeBrew instala Python, mantiene los pythonpuntos en el 2.7 original ypython3 apunta a 3.6.

El problema podría deberse a $ pip install pipenv. Revisé / usr / local / bin y pipenv no está allí. Entonces, probé una desinstalación completa:

$ 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.

Luego reinstale y funciona ahora:

$ pip3 install pipenv
Collecting pipenv
John Pang
fuente
8

OSX CHICOS, POR AQUÍ !!!

Como respondió @charlax (para mí, el mejor), puede usar un comando más dinámico para configurar PATH, pero para los usuarios de Mac esto no podría funcionar , a veces su ruta USER_BASE obtenida del sitio es incorrecta, por lo que debe averiguar dónde está su La instalación de Python es.

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

obtendrá un enlace simbólico, luego debe encontrar el enlace simbólico de la fuente.

$ 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

(esto ../../../significa raíz)

Entonces encontró la ruta de Python ( /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6), entonces solo necesita ingresar ~ / .bashrc de la siguiente manera:

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

Claudio santos
fuente
1
Solucionado mi problema. Saludos
Floran Gmehlin
Instalé python3 a través de Homebrew. Cuando se ejecutó, which python3la salida fue la /Cellar/python/3.7.7/bin/python3que le asigné a mi RUTA pero aún así `` pipenv` no encontrado`. ¿Alguna idea?
Ozkan Serttas
6

Donde Python almacena los paquetes

Antes de saltar al comando que se instalará pipenv, vale la pena comprender dónde se pip instalan los paquetes de Python .

Paquetes de sitio globales es donde Python instala paquetes que estarán disponibles para todos los usuarios y todas las aplicaciones de Python en el sistema. Puede verificar el paquete del sitio global con el comando

python -m site

Por ejemplo, en Linux con Python 3.7, la ruta suele ser

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

Los paquetes de sitio de usuario es donde Python instala los paquetes disponibles solo para usted. Pero los paquetes seguirán siendo visibles para todos los proyectos de Python que cree. Puedes conseguir el camino con

python -m site --user-base

En Linux con Python 3.7, la ruta suele ser

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

Usando Python 3.x

En la mayoría de Linux y otros Unices, normalmente Python 2 y Python 3 se instalan uno al lado del otro. El ejecutable predeterminado de Python 3 es casi siempre python3. pippuede estar disponible como cualquiera de los siguientes, dependiendo de su distribución de Linux

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

Linux

¡Evite usar pipcon sudo! Sí, es la forma más conveniente de instalar paquetes de Python y el ejecutable está disponible en /usr/local/bin/pipenv, pero también significa que el paquete específico siempre está visible para todos los usuarios y todos los proyectos de Python que cree. En su lugar, utilice paquetes de sitios por usuario con--user

pip3 install --user pipenv

pipenv está disponible en

~/.local/bin/pipenv

Mac OS

En macOS, Homebrew es la forma recomendada de instalar Python . Puede actualizar Python fácilmente, instalar múltiples versiones de Python y cambiar entre versiones usando Homebrew.

Si está utilizando Python Homebrew'ed, pip install --userestá deshabilitado. El paquete de sitio global se encuentra en

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

y puede instalar paquetes de Python de forma segura aquí. Python 3.y también busca módulos en:

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

Ventanas

Por motivos heredados, Python está instalado en C:\Python37. El ejecutable de Python generalmente se nombra py.exey puede ejecutar pipconpy -m pip .

Los paquetes de sitios globales están instalados en

C:\Python37\lib\site-packages

Como no suele compartir sus dispositivos Windows, también está bien instalar un paquete a nivel mundial

py -m pip install pipenv

pipenv ahora está disponible en

C:\Python37\Scripts\pipenv.exe

No recomiendo instalar paquetes de Python en Windows con --user, porque el directorio de paquete de sitio de usuario predeterminado está en su perfil móvil de Windows

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

El perfil móvil se utiliza en Terminal Services (Escritorio remoto, Citrix, etc.) y cuando inicia o cierra sesión en un entorno corporativo. El inicio de sesión, el cierre de sesión y el reinicio lentos en Windows pueden deberse a un perfil de itinerancia grande.

Hanxue
fuente
5

La instalación de pipenv globalmente puede tener un efecto adverso al sobrescribir la instalación de pip global / administrada por el sistema, lo que resulta en errores de importación al intentar ejecutar pip.

Puede instalar pipenv a nivel de usuario:

pip install --user pipenv

Esto debería instalar pipenv a nivel de usuario en /home/username/.local para que no entre en conflicto con la versión global de pip. En mi caso, eso todavía no funcionó después de ejecutar el interruptor '--usuario', así que ejecuté el comando más largo 'arreglar lo que arruiné' una vez para restaurar el entorno administrado por el sistema:

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

^ encontrado aquí: Error después de actualizar pip: no se puede importar el nombre 'principal'

y luego hizo lo siguiente:

mkdir /home/username/.local ... si aún no existe

export PYTHONUSERBASE=/home/username/.local

Asegúrese de que la exportación haya surtido efecto (mordiéndome una vez durante este proceso):

echo $PYTHONUSERBASE

Luego, ejecuté el pip install --user pipenv y todo estuvo bien. Luego pude ejecutar pipenv desde la CLI y no sobrescribió el módulo pip global / administrado por el sistema. Por supuesto, esto es específico para el usuario, por lo que debe asegurarse de instalar pipenv de esta manera mientras trabaja como el usuario que desea usar pipenv.

Referencias:

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

NetRay
fuente
1

Esto está arreglado para que yo:

sudo -H pip install -U pipenv
Asliddin Muzaffarov
fuente
1

Después de instalar pipenv ( sudo pip install pipenv), seguía recibiendo el error "Comando no encontrado" al intentar ejecutar elpipenv shell comando.

Finalmente lo arreglé con el siguiente código:

pip3 install pipenv
pipenv shell
Podenborg
fuente
0

Podría considerar instalar a pipenvtravés de pipsi.

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

Desafortunadamente, hay algunos problemas con macOS + python3 en el momento de escribir este artículo, consulte 1 , 2 . En mi caso tuve que cambiar bashprompt a#!/Users/einselbst/.local/venvs/pipsi/bin/python

einSelbst
fuente
0

En algunos casos de pipversión antigua :

sudo easy_install pip
sudo pip install pipenv
prosti
fuente
0

Para los usuarios de Windows, esto puede deberse a una instalación en conflicto con virtualenv. Para mí funcionó cuando desinstalé virtualenv y pipenv primero, y luego instalé solo pipenv.

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

Ahora pipenv install xxxfuncionó para mi

akhila survi
fuente
0

En Mac OS X Catalina, parece seguir la ruta de Linux. Usando cualquiera de:

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

Básicamente instala pipenv aquí:

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

Pero no es el ejecutable y nunca se encuentra. Lo único que funcionó para mí fue

pip install --user pipenv

Esto parece resultar en un __init__.pyarchivo en el directorio anterior que tiene contenido para exponer correctamente elpipenv comando.

y todo comenzó a funcionar, cuando todas las demás sugerencias publicadas y comentadas sobre esta pregunta fallaron.

El paquete pipenv ciertamente parece bastante delicado.

Michael Coxon
fuente
para usuarios de Mac, este código también funciona, sudo -H python3 -m pip install pipenv
Jay Dangar