Nariz instalada pero no se puede usar en la línea de comandos

Instalé Nose en un Mac OSX 10.10.5 con Python2.7.9 utilizando easy_install . La instalación pareció tener éxito:

 Collecting nose Downloading nose-1.3.7-py2-none-any.whl (154kB) 100% |████████████████████████████████| 155kB 2.3MB/s Installing collected packages: nose Successfully installed nose-1.3.7 

Pero ahora, cuando bash incluso cosas básicas con pruebas de red en la línea de comandos, como las nosetests -h o which nosetests que acabo de obtener:

 bash: nosetests: command not found 

He intentado desinstalar, reinstalar usando pip , he intentado instalar con sudo y luego ejecutar sudo nostests en los directorios con scripts de prueba como han sugerido otras publicaciones, pero nada parece funcionar.

El propósito original de la instalación era usar nose para ejecutar algunas pruebas básicas con scripts de prueba que había escrito para estas aplicaciones web.py simples. Pero nada funciona, solo sigue recibiendo el command not found respuesta.

Lo que es extraño es que cuando abro el intérprete de Python en Terminal y hago algo como:

 import nose nose.main() 

Obtengo el resultado esperado de:

 . ---------------------------------------------------------------------- Ran 1 test in 0.135s OK 

Así que claramente está instalado … en algún lugar. ¿Alguna sugerencia sobre qué demonios está pasando aquí?

En sistemas similares a UNIX como OS X, el script debe estar en /usr/local/bin . Asegúrese de que el directorio esté en la PATH entorno PATH en el shell que usa.

Si no es así, también puede localizarlo utilizando find , por ejemplo:

 find / -type f -name 'nosetests*' -perm +111 -print -quit 

Esto significa; busque un archivo cuyo nombre comience con nosetests , que tenga establecidos los permisos de ejecución. Imprima el nombre de la ruta y pare.

Se han producido muchos errores al utilizar los paquetes de instalación de pip en Mac OS. Así que te recomiendo que instales la nose usando easy_install .

$ pip uninstall nose

$ sudo easy_install nose

Entonces puedes probar las nosetests ahora mismo 🙂

Tuve este problema exacto en OS X EI Captain con Python 2.7.10.

Primero instalé la nariz usando pip :

 $sudo pip install nose 

que falló en el primer bash. Pasó en el segundo bash. Pero el comando de nosetests no funcionó.

Para arreglar esto:

Paso 1: No desinstale la nariz si ya estaba instalada usando pip como en mi caso.

Paso 2:

 $cd /usr/bin $sudo easy_install nose 

El comando anterior encuentra el script nosetests (que fue instalado por pip antes) y lo establece en /usr/local/bin

 Step 3: Try nosetests $nosetests ---------------------------------------------------------------------- Ran 0 tests in 0.047s OK 

Me pareció que iba a

 Library/usr/bin 

y corriendo

 sudo easy_install nose 

Parece que a veces no instala automáticamente la nariz (y, por lo tanto, la funcionalidad de las pruebas). Haz las líneas anteriores, y deberías estar bien.

Desearía tener una mejor explicación de por qué sucedió esto, pero todavía soy bastante nuevo.

Primero, ¿puedes ejecutar ‘python’ desde la línea de comando? Las pruebas de detección deben estar en ese mismo directorio:

 rich bin $ which python /home/rich/anaconda/bin/python rich bin $ which nosetests /home/rich/anaconda/bin/nosetests 

También debe estar en el paquete descargado:

 rich bin $ find /home/rich/anaconda -name nosetests /home/rich/anaconda/pkgs/nose-1.3.3-py27_0/bin/nosetests /home/rich/anaconda/pkgs/nose-1.3.7-py27_0/bin/nosetests /home/rich/anaconda/bin/nosetests 

Por lo que entiendo, todos se están moviendo a pytest , un marco de prueba mantenido de manera activa.

No es una solución a este problema, pero es probable que sea la opción más adecuada si aún está usando la nariz .

Intento volver a instalar el pip, no funciona pero, por último, cuando uso sudo … funciona

pip3 desinstalar nariz

sudo pip3 instalar nariz

y

que nos dice

/ usr / local / bin / nosetests

Esto también puede suceder si estaba ejecutando la nariz en un entorno virtual, y ese entorno virtual ha sido desactivado. Si este es el caso, vuelva a activar con la source bin/activate .