python:怎么才先执行.bat文件在行python语句?

有个bat脚本是用来设置环境变量的 如果不执行这个脚本后面的python语句找不到包,设置永久的环境变量(根据脚本内容设的)设了好几边没成功,所以有没有什么办法先执行一个.bat脚本再执行其他的python语句?即:
xxx.py

执行bat脚本

import xxx

.....

.....

我试过直接用os.system("xxx.bat"),但没用


补充:
之所以要在python脚本里执行bat脚本,是想用pycharm对python脚本进行单步调试
我这样搞
python:怎么才先执行.bat文件在行python语句?
python:怎么才先执行.bat文件在行python语句?
调试好像调试不了


回答:

看描述是想要添加一个 PYTHONPATH 环境变量什么的,有两种选择吧。

  1. 想添加一个 import 路径,可以用 sys.path,参考文档
  2. 想添加一个环境变量,其他地方用到,可以用 os.environ,参考文档

关于 import 路径还可以看这个文档。


那还是从 python 脚本出发,启动bat再继承上下文。

REM 脚本叫 setup.bat

SET 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

回到顶部