Измените скрипт Python, который запускается на терминале с вводом командной строки, для работы в среде IDE.

avatar
secondrate
1 июля 2021 в 20:15
142
1
1

Я играю с кодом, похожим на программное обеспечение Python, которое я скачал. Мне нужно извлечь некоторые части кода, и поэтому я сейчас отслеживаю его, чтобы лучше понять. Мне было бы намного проще отслеживать код в IDE (я использую spyder), чтобы я мог ставить точки останова и визуально проверять переменные. Поэтому я хочу изменить код, но не знаю, как это сделать.

Это структура каталогов кода. Главный каталог — «advance», а 2 его подкаталога — «advance» и «examples». Код был установлен с помощью pip, и для запуска кода необходимо перейти в каталог примеров, войти в подкаталог, представляющий тестовый пример, и просто ввести «advance». в терминале ("." представляет pwd).

После некоторого отслеживания я обнаружил, что при этом вызывается файл driver.py с адресом advance/advance/driver.py. Код driver.py имеет следующую структуру:

.
# import stuff here

def main():
    
    parser = argparse.ArgumentParser(description="Read working directory")
    
    # some stuff here


if __name__ == "__main__":
    try:
        main()
    except:
        print(traceback.format_exc())
        print("Execution failed")

Как видите, функция main принимает на вход рабочий каталог.

Теперь у меня вопрос: как я могу изменить это, чтобы я мог запускать этот код в своей среде IDE? Или, что еще лучше, могу ли я написать скрипт, который вызывает основную функцию в файле driver.py и указать путь к каталогу для тестового примера, который я хочу запустить? Если да, то как мне это сделать?

Спасибо и извините, если это звучит слишком просто. Я перехожу из Matlab и перехожу на python.

Источник

Ответы (1)

avatar
schilli
1 июля 2021 в 21:23
0

Я нашел в этом сообщении Reddit, что spyder предлагает передать параметры командной строки при запуске скрипта. См. следующую настройку:

.
Run -> Configure -> Command line options

К сожалению, я не знаком со Spyder, так что пока что могу сказать только это. Я думаю, он работает аналогично PyCharm (который я использую). Там это так: вы адаптируете свою конфигурацию запуска и можете установить параметры, которые хотите передать скрипту. Впоследствии при запуске этой конфигурации запуска PyCharm всегда будет передавать эти конкретные параметры сценарию. Это позволяет использовать отладчик IDE для проверки кода. Могу поспорить, что Spyder ведет себя почти так же. Удачи в использовании предложенных настроек :)