简体   繁体   English

如何通过批处理文件运行 python 脚本

[英]how run a python script via Batch file

hi i have a question how can run a python script in Batch file嗨,我有一个问题,如何在批处理文件中运行 python 脚本

i have a setup file for my flask app and every time should set up some environment variable and run app.py我的 flask 应用程序有一个安装文件,每次都应该设置一些环境变量并运行 app.py

i create a setup for this but i don't know how run python app and it's not working我为此创建了一个设置,但我不知道如何运行 python 应用程序并且它无法正常工作

my setup.cmd file looks like this:我的 setup.cmd 文件如下所示:

set app_debug=True
set API_KEY=secret
set SECRET_KEY=development mode
set WTF_CSRF_SECRET_KEY=development mode
set email_password=development mode
set RECAPTCHA_PUBLIC_KEY=secret
set RECAPTCHA_PRIVATE_KEY=secret

./venv/Scripts/activate.bat
python app.py

and it's goes to./venv/Scripts/activate.bat and then stop and don't work它会转到./venv/Scripts/activate.bat 然后停止并且不起作用

I think you have to “call” an external batch file if you want execution to return your current batch file.我认为如果要执行以返回当前批处理文件,则必须“调用”外部批处理文件。 So write所以写

call./venv/Scripts/activate.bat调用./venv/Scripts/activate.bat

in your batch file.在你的批处理文件中。

Consider having a .env file to store your environment variables.考虑使用.env文件来存储环境变量。

From your app.py file you can load those env vars.从您的app.py文件中,您可以加载这些环境变量。

Reference: https://towardsdatascience.com/environment-variables-python-aecb9bf01b85参考: https://towardsdatascience.com/environment-variables-python-aecb9bf01b85

Example:例子:

import os
env_var = os.environ.get('ENV')
if not env_var:
    print('ENV environment variable does not exist')

I face the same issue with my flask app virtual enviroment setup.bat script, I resolve this issue using below script.我的 flask 应用程序虚拟环境 setup.bat 脚本面临同样的问题,我使用以下脚本解决了这个问题。

setup.bat安装程序.bat

python -m venv venv
call venv\Scripts\activate.bat
pip install -r requirements.txt
call venv\Scripts\deactivate.bat

where, You can see I have used keyword call which will call the activate.bat file and keep my virtual environment activated while I am doing my pip install .在那里,您可以看到我使用了关键字call ,它将调用 activate.bat 文件并在我执行pip install时保持我的虚拟环境处于激活状态。 Once it is done I have deactivated the virtual environment using the same call command in the batch file.完成后,我在批处理文件中使用相同的call命令停用了虚拟环境。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM