Argpse Python модули в cli
Я пытаюсь запустить python script из среды командной строки Linux SSH Secure Shell, и я пытаюсь импортировать библиотеку argparse, но он дает ошибку: "ImportError: No module named argparse".
Я думаю, что это связано с тем, что среда Python, используемая оболочкой Linux, не имеет в ней библиотеки argparse, и я думаю, что могу исправить ее, если я могу найти каталоги для библиотек, используемых Python окружение и скопировать библиотеку argparse в нее, но я не могу найти, где находится этот каталог.
Я был бы признателен за любую помощь в поиске этого каталога (я полагаю, что теперь я мог бы включить библиотеку argparse в тот же каталог, что и мой python script, но я бы предпочел иметь библиотеку argparse в том месте, где другой Python библиотеки, как и должно быть).
Ответы
Ответ 1
Модуль argparse
был добавлен в Python 2.7.
http://docs.python.org/library/argparse.html
До 2.7 наиболее распространенным способом обработки аргументов командной строки был, вероятно, getopt
.
http://docs.python.org/library/getopt.html
Конечно, вы всегда можете обращаться с командной строкой вручную, глядя на sys.argv
. Однако getopt
- хороший уровень абстракции, а argparse
еще лучше.
Если вам действительно нужно argparse
в более старых средах (дискуссионный), есть проект Google Code, поддерживающий его, и вы можете включить его в свой проект. http://code.google.com/p/argparse/
Ответ 2
Если вы находитесь в CentOS и не имеете простой RPM, чтобы добраться до Python 2.7, предложение JF pip install argparse
- это путь. Вызов этого решения в новом ответе. Спасибо, JF.
Ответ 3
Просто добавьте пакет вручную, если вы используете Penton 2.6.6 для Centos 6 по умолчанию
yum install python-argparse
Все, что мне понадобилось, чтобы заставить IPython работать. Странно, что YUM не устанавливал его автоматически, когда я использовал YUM для установки IPython.
Ответ 4
Вы можете проверить путь поиска для модулей с помощью:
import sys
print "\n".join(sys.path)
Но не имеет argparse нечетно: он в стандартной библиотеке...
Ответ 5
Возможно, вы используете более старую версию Python.
Модуль argparse был добавлен совсем недавно, в Python 2.7.