2011-09-19 15 views
12

Estoy tratando de ejecutar un script de python desde el entorno de línea de comandos de SSH Secure Shell de Linux, y estoy tratando de importar la biblioteca argparse, pero me da el error: "ImportError: ningún módulo llamado argparse" .argparse Módulos de Python en cli

Creo que esto se debe a que el entorno de Python que usa el shell de Linux no tiene la biblioteca argparse, y creo que puedo arreglarlo, arreglarlo si puedo encontrar los directorios de las bibliotecas que está utilizando el Entorno Python, y copie la biblioteca argparse en él, pero no puedo encontrar dónde se encuentra ese directorio.

Agradecería cualquier ayuda para encontrar este directorio (supongo que podría incluir la biblioteca argparse en el mismo directorio que mi secuencia de comandos python por ahora, pero preferiría tener la biblioteca argparse en el lugar donde están las otras bibliotecas de Python son, como debería ser).

+0

argparse.py es una pieza bastante estándar de python, es posible que haya dañado su sys.path. Ejecute este comando y pegue el resultado en su pregunta: python -c "import argparse; print argparse" –

+1

¿Qué versión de python está usando? –

+2

¿En qué distro estás? – myusuf3

Respuesta

1

Puede examinar el camino de búsqueda de módulos con:

import sys 
print "\n".join(sys.path) 

Pero no tener argparse es impar: está en la biblioteca estándar ...

+0

No en lib estándar hasta 2.7. Ver mi respuesta para más detalles. – dkamins

0

Probablemente se esté utilizando una versión anterior de Python .

El módulo argparse se ha agregado bastante recientemente, en Python 2.7.

6

El módulo argparse se agregó en Python 2.7. http://docs.python.org/library/argparse.html

Antes de la versión 2.7, la forma más común de manejar los argumentos de línea de comandos era probablemente getopt. http://docs.python.org/library/getopt.html

Por supuesto, siempre se puede manejar manualmente la línea de comandos simplemente mirando sys.argv. Sin embargo, getopt es una buena capa de abstracción, y argparse es incluso mejor.

Si realmente necesita argparse en entornos más antiguos (discutible), hay un proyecto de Google Code que lo mantiene, y puede incluirlo en su proyecto. http://code.google.com/p/argparse/

+4

Antes de 2.7, se podía usar el módulo ['optparse'] (http://docs.python.org/library/optparse.html) o' pip install argparse'. – jfs

+0

¿cómo puedo instalar "pip"? – greg

+0

@greg puedes usar 'virtualenv' que incluye' pip' – dkamins

2

Si está en CentOS y no tiene un RPM fácil para llegar a Python 2.7, la sugerencia de JF de pip install argparse es el camino a seguir. Llamar a esta solución en una nueva respuesta. Gracias, JF.

2

Sólo añadir el paquete manualmente si el uso de Python Centos 6 por defecto 2.6.6

yum install python-argparse 

Eso es todo lo que tomó para que consiga IPython para trabajar. Es extraño que YUM no lo haya instalado automáticamente cuando usé YUM para instalar IPython.

Cuestiones relacionadas