Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2014 15:55:38

koluna
Зарегистрирован: 2014-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Странное поведение argparse

Всем привет!

На Windows использую argparse, Python 2.7.

Заметил одну особенность.
Возможно, я не совсем правильно использую модуль…

1. Если запускаю скрипт на выполнение в виде

python prog.py --x=12345
то
os.path.dirname(__file__)
в скрипте не возвращает путь (возвращает только имя файла), argparse находит параметры.

2. Если запускаю скрипт на выполнение в виде
prog.py --x=12345
то функцией выше возвращается полный путь к файлу, но argparse не находит параметров. Такое ощущение, что ОС их отсекает…

Иными словами, если выполнять скрипт, передавая его интерпретатору, то argparse находит параметры.
А если выполнять без передачи интерпретатору, то argparse не находит параметров.

Где ошибка?

Отредактировано koluna (Дек. 9, 2014 18:09:17)

Офлайн

#2 Дек. 10, 2014 13:27:43

koluna
Зарегистрирован: 2014-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Странное поведение argparse

Разобрался.
Чтобы в Windows при запуске скрипта с параметрами (актуально при запуске без указания интерпретатора) эти параметры не терялись, нужно подправить в реестре строку запуска интерпретатора:

В реестре Windows 7:
параметр
значение “C:\Python27\python.exe” “%1” %*

Комбинация %* должна быть без кавычек, иначе все переданные параметры будут переданы как один единственный!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version