Похоже, что аргументы командной строки из основного сценария передаются в дополнительный сценарий.
Вы можете попытаться (и, вероятно, должны) обернуть содержимое argparse в:
if __name__ == '__main__':
<argparse stuff>
При этом код вызывается только тогда, когда скрипт вызывается из командной строки.Реальный код может быть передан в функцию.Таким образом, вы можете использовать скрипт из командной строки с argparse и импортировать функцию из скрипта, только если вы вызываете ее из другого скрипта:
Основной скрипт:
import argparse
import subscript
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-p', '--print_positive_results', action='store_true')
args = parser.parse_args()
...
subscript.your_function(<whatever your args are>)
...
Под скрипт:
import argparse
def your_function(<your args>):
<your code>
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-d', '--debug', action='store_true')
args = parser.parse_args()
your_function(<whatever your args are>)
...