Как запустить виртуальную среду Python в пакетном файле .bat?

Мне нужно настроить длинный список временных переменных среды каждый раз, когда я запускаю приложение Python Flask в Windows 10. Теперь я хотел бы создать пакетный файл для запуска со всеми настройками одним двойным щелчком. Следующие строки работают хорошо, если я скопирую их и вставлю в приглашение cmd, но я не смог запустить их в пакетном файле.

Выполнение пакетного файла всегда прерывается и завершается на 2-й строке venv\scripts\activate в пакетном файле, что не вызывает никаких проблем, если я копирую и вставляю строку за строкой в ​​cmd.

cd C:\py\project
venv\scripts\activate

set env1=val1
set env2=val2
set FLASK_APP=some.py

flask run

person D Emma    schedule 07.05.2019    source источник
comment
В дополнение к уже предоставленному ответу вы также должны использовать CD /D "C:\py\project", Set "env1=val1", Set "env2=val2" и Set "FLASK_APP=some.py".   -  person Compo    schedule 07.05.2019


Ответы (2)


Одна из многих (слишком многих) особенностей файлов .bat заключается в том, что если вы запустите другой файл .bat, он не знает, куда вернуться.
Вам нужно явно call его:

call venv\scripts\activate
person molbdnilo    schedule 07.05.2019

вы можете просто использовать

start venv\Scripts\activate

Это откроет новый терминал точно так же... вы можете передать другие команды, используя знак && или &.

person Ajibola L'Don Jibson Olayanju    schedule 17.07.2020