python:怎么才先执行.bat文件在行python语句?
有个bat脚本是用来设置环境变量的 如果不执行这个脚本后面的python语句找不到包,设置永久的环境变量(根据脚本内容设的)设了好几边没成功,所以有没有什么办法先执行一个.bat脚本再执行其他的python语句?即:xxx.py
执行bat脚本import xxx
.....
.....
我试过直接用os.system("xxx.bat")
,但没用
补充:
之所以要在python脚本里执行bat脚本,是想用pycharm对python脚本进行单步调试
我这样搞
调试好像调试不了
回答:
看描述是想要添加一个 PYTHONPATH 环境变量什么的,有两种选择吧。
- 想添加一个 import 路径,可以用
sys.path
,参考文档 - 想添加一个环境变量,其他地方用到,可以用
os.environ
,参考文档
关于 import 路径还可以看这个文档。
那还是从 python 脚本出发,启动bat再继承上下文。
REM 脚本叫 setup.batSET ENV1=ENV1
# 这是 main.py,程序入口,启动 setup.bat 不做别的import os
os.execlp('cmd.exe', "/C","setup.bat & python main2.py")
# 这是真实程序的入口点import os
print('python ---- '+os.environ['ENV1'])
最后结果应该是
c:\Users\weakptr\repos\play>set ENV1=ENV1 python ---- ENV1
原理是 exec* 系列函数调用用指定进程替换自己,所以 python main.py 启动后用cmd 替换了自己,cmd /C 先后执行 setup.bat 和 真正的脚本
以上是 python:怎么才先执行.bat文件在行python语句? 的全部内容, 来源链接: utcz.com/p/937999.html