Резюме
Раньше я получал выходные данные от всех операторов печати, и мой скрипт на Python работал бы так, как ожидалось, теперь я запускаю его нормально, если строка переводит командную строку, подождите около 3-5 секунд, а затем отобразит новую строку с командная строка Это произошло, когда я вносил дополнения в набор тестов и наборы данных, которые мне дали.
Подробнее
Я делаю набор тестов для машинного обучения Python 3.7 на машине с Windows для моего босса и добился довольно больших успехов, когда выходные данные моего скрипта на python перестали работать. Я искал интер-сети и не нашел ситуаций, подобных моей, с какими-либо решениями, большинство проблем возникает из-за того, что люди не пишут свои сценарии должным образом.
Когда я запускаю скрипт в командной строке, я запускаю его с «py myscript.py {args}» или «python myscript.py {args}». Я также пытался использовать опции Python -3 и -3.7.
Моя отладка этой проблемы выглядит следующим образом:
- Добавлен оператор печати в начале main: нет вывода на печать
- Изменено имя экземпляра переменной, которое требуется позже, при этом использование этой переменной остается прежним: ошибка не выводится
- Деинсталлированный argparse (который используется в скрипте) с использованием деинсталляции pip: ошибки не выводятся
- Создан отдельный скрипт Python, в котором только один оператор печати в основном: нет вывода
- Запуск Python –V: выводит «Python 3.7.2»
- Изменение или полное удаление #! строка вверху файла: без разницы
У меня только Python 3.7 установлен на компьютере, на котором я работаю. Я также установил Visual Studio Code (VSC) и соответствующий модуль Python для VSC, и сценарий Python отлично работает там, когда он запускается под VSC с (или без) отладкой. Я попытался запустить его через терминалы VCS, и там тоже отсутствует вывод.
Включенный код представляет собой небольшое подмножество программы, которое должно ответить на большинство неотложных вопросов. Я что-то пропустил?
#!python3.7
.
. (import statements)
.
def main():
print ('Python Output Test\n')
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--seed', type=int, default=42, help='Set the seed for the algorithms.')
parser.add_argument('-q', '--quiet', default=False, action="store_true", help='Use when lots of output is not necessary.')
parser.add_argument('-r', '--run', type=int, default=0, choices=[0, 1, 2, 3, 4, 5, 6], help='Use to determine which file to use.')
args = parser.parse_args()
seed = args.seed
quiet = args.quiet
runType = args.run
print ('MachineLearning.py -s ', seed, ' -r ', runType)
.
. (lots of code that used to work)
.
return 0
if __name__ is "__main__":
main()
Приведенный выше код должен выводить эти операторы печати в командную строку, или, возможно, об ошибках следует сообщать, если есть ошибки, но я получаю ничего .