Estoy trabajando en mac OS X Yosemite, versión 10.10.3.
Instalé python2.7 y pip usando macport como se hizo en http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Puedo instalar paquetes con éxito e importarlos dentro de mi entorno de Python y scripts de Python. Sin embargo, no se encuentra ningún ejecutable asociado con un paquete que se pueda llamar desde la línea de comando en la terminal.
¿Alguien sabe qué podría estar mal? (Más detalles a continuación)
Por ejemplo, al instalar un paquete llamado "rosdep" como se indica en http://wiki.ros.org/jade/Installation/Source
Puedo ejecutar: sudo pip install -U rosdep
que se instala sin errores y los archivos correspondientes se encuentran en/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Sin embargo, si intento ejecutar:, sudo rosdep init
da un error:"sudo: rosdep: command not found"
Este no es un error específico del paquete. Obtengo esto para cualquier paquete instalado usando pip en mi computadora. Incluso intenté agregar
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
a mi $PATH
. Pero los ejecutables no se encuentran en la línea de comandos, a pesar de que los paquetes funcionan perfectamente desde python.
Respuestas:
revisa tu $ PATH
tox
tiene un modo de línea de comando:¿Dónde está?
(editar: las
2.7
cosas no importan mucho aquí, sub en cualquiera3.x
y pip se comporta de la misma manera)y que hay en mi $ PATH?
¿Observa el /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin ? Eso es lo que permite encontrar mis cosas instaladas con pip
Ahora, para ver dónde están las cosas desde Python, trate de hacer esto (sustituto
rosdep
paratox
).que imprime:
Ahora, vaya al directorio que está justo encima
lib
de lo anterior. ¿Ves un directorio bin ? ¿Vesrosdep
en esa papelera? Si es así, intente agregarbin
a su $ PATH.salida:
fuente
rosdep
es consistente con su problema. mi punto es que necesita encontrar dónderosdep
está instalado y cómo se ve $ PATH.which
(si aún no está en su camino), también puede intentar encontrar el binario usandomlocate
Linux omdfind
macOS.En macOS con la instalación de Python predeterminada, debe agregar
/Users/<you>/Library/Python/2.7/bin/
a su $ PATH.Agregue esto a su .bash_profile:
Ahí es donde pip instala los ejecutables.
Consejo: Para la versión de Python no predeterminada,
which python
busque la ubicación de su instalación de Python y reemplace esa parte en la ruta anterior. (Gracias por la pista Sanket_Diwale)fuente
which python3
finalmente me llevó (a través de un enlace) a/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Si está instalando usando
--user
(ppip3.6 install --user tmuxp
. Ej. ), Es posible obtener el directorio de instalación del usuario específico de la plataforma desde Python usando elsite
módulo . Por ejemplo, en macOS:Añadiendo
/bin
a esto, ahora tenemos la ruta donde se instalarán los ejecutables del paquete. Podemos rellenar dinámicamente la RUTA en el archivo rc de su shell en función de la salida; Estoy usando bash, pero con suerte, esto es portátil:Utilizo las versiones precisas de Python para reducir la posibilidad de que los ejecutables simplemente "desaparezcan" cuando Python actualiza una versión menor, por ejemplo, de 3.5 a 3.6. Desaparecerán porque, como se puede ver arriba, la ruta de instalación del usuario puede incluir la versión de Python. Entonces, aunque
python3
podría apuntar a 3.5 o 3.6,python3.6
siempre apuntará a 3.6. Esto debe tenerse en cuenta al instalar más paquetes, por ejemplo, usepip3.6
overpip3
.Si no le importa la idea de que los paquetes desaparezcan, puede usar
python2
y en supython3
lugar:fuente
Sé que la pregunta es sobre macOS, pero aquí hay una solución para los usuarios de Linux que llegan aquí a través de Google.
Estaba teniendo el problema descrito en esta pregunta, habiendo instalado el paquete pdfx a través de pip.
Sin embargo, cuando lo ejecuté, nada ...
Todavía:
El problema en Linux es que
pip install ...
suelta scripts~/.local/bin
y esto no está en Debian / Ubuntu predeterminado$PATH
.Aquí hay un problema de GitHub que entra en más detalles: https://github.com/pypa/pip/issues/3813
Para solucionarlo, simplemente agregue
~/.local/bin
a su$PATH
, por ejemplo, agregando la siguiente línea a su.bashrc
archivo:Después de eso, reinicie su shell y las cosas deberían funcionar como se esperaba.
fuente
source ~/.bashrc
volver a cargar la.bashrc
configuraciónSolución
Según otras respuestas, para
linux
ymac
puede ejecutar lo siguiente:en lugar de
python3
que puede utilizar cualquier otro enlace a la versión Python:python
,python2.7
,python3.6
,python3.9
, etc.Explicación
Para saber dónde están instalados los paquetes de usuario en el sistema operativo actual (win, mac, linux), ejecutamos:
Sabemos que los scripts van a la
bin/
carpeta donde están instalados los paquetes.Entonces concatenamos los caminos:
Luego exportamos eso a una variable de entorno.
Finalmente, para evitar repetir el comando de exportación lo agregamos a nuestro
.bashrc
archivo y ejecutamossource
para ejecutar los nuevos cambios, dándonos la solución sugerida mencionada al principio.fuente
En Windows, debe agregar la ruta
%USERPROFILE%\AppData\Roaming\Python\Scripts
a su ruta.fuente
Me encontré con esta pregunta porque creé, construí y publiqué con éxito un paquete PyPI, pero no pude ejecutarlo después de la instalación. La
$PATH
variable se estableció correctamente.En mi caso, el problema era que no había configurado el
entry_point
en elsetup.py
archivo:fuente
Además de agregar el
bin
directorio de Python a la$PATH
variable, también tuve que cambiar el propietario de ese directorio para que funcione. No tengo idea de por qué ya no era el dueño.fuente
Cuando instala Python o Python3 usando el instalador de MacOS (descargado del sitio web de Python), agrega una
export
er a su~/.profile
secuencia de comandos. Todo lo que necesita hacer essource
hacerlo. Reiniciar todos los terminales también debería funcionar.ADVERTENCIA: creo que es mejor usar pip3 con Python3 para obtener beneficios futuros.
Si ya tiene Python3 instalado, los siguientes pasos me funcionan en macOS Mojave:
Instale ansible primero usando
sudo
-sudo -H pip3 install ansible
creas un enlace simbólico a la
bin
ruta de Pythonsudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin
y engraparlo a
.profile
export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin
ejecute
source ~/.profile
y reinicie todos los shells de terminal.Tipo
ansible --version
fuente