Подтвердить что ты не робот

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 библиотеки, как и должно быть).

4b9b3361

Ответ 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.