Я оставил комментарий в ответе Россипедии о подобной ситуации, но я сомневаюсь, что это заметят в 8-летнем посте.Итак, я экспериментировал сам.
У меня есть скрипт на python, который обрабатывает папку, которая на него упала.Когда я добавляю новые строки, иногда я получаю синтаксические ошибки и не вижу их, потому что окно командной строки закрывается слишком быстро.Чтобы окно оставалось открытым после ошибки, мне пришлось изменить код Россипедии.Мне нужен был способ передать путь к файлу bat (сбросить в нем папку) и заставить bat передать этот путь скрипту python.Это делает следующее:
debug.bat
:
@echo off
REM debug.bat and myscript.py should be in the same dir, otherwise use absolute path for the python script
C:\Users\%username%\AppData\Local\Programs\Python\Python36-32\python.exe "%~dp0\myscript.py" %1
IF %ERRORLEVEL% NEQ 0 PAUSE
myscript.py
:
import sys
print("printing dropped file path:")
print(sys.argv[1])
input()
Если я получаю ошибку, я просто использую debug.bat
чтобы увидеть ошибку, и она работает так же (поместите в нее папку).
Обновление:
В моем реальном скрипте Python у меня есть эта строка:
sys.path.append("modules")
Это не работает, когда я использую debug.bat
.«модули» - это папка, которая находится в одной папке со скриптом Python.Когда скрипт вызывается с помощью debug.bat, текущий рабочий каталог меняется на каталог удаленного файла.Итак, чтобы получить путь к «модулям», мне пришлось использовать абсолютный путь:
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "\\modules")