python运行bat文件来设置环境变量

2024-05-29 02:46:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.bat文件,它执行多个set命令来添加环境变量,以便执行更多脚本

我尝试了下面的代码,但它不起作用

import subprocess
subprocess.call([r'C:\Users\User\Desktop\my_vars.bat'])   

下面是我的bat文件

SET ROOT=C:\Program Files (x86)\IntelSWTools\openvino
set "INTEL_OPENVINO_DIR=C:\Program Files (x86)\IntelSWTools\openvino"
set "INTEL_CVSDK_DIR=C:\Program Files (x86)\IntelSWTools\openvino"
set "OpenCV_DIR=C:\Program Files (x86)\IntelSWTools\openvino\opencv\cmake"
set "InferenceEngine_DIR=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\share"
set "HDDL_INSTALL_DIR=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\external\hddl"
set "ngraph_DIR=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\ngraph\cmake"
set PYTHONPATH=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\open_model_zoo\tools\accuracy_checker;C:\Program Files (x86)\IntelSWTools\openvino\python\python3.7;C:\Program Files (x86)\IntelSWTools\openvino\python\python3;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer;
set "PATH=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\ngraph\lib;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\external\tbb\bin;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\bin\intel64\Release;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\bin\intel64\Debug;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\external\hddl\bin;C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer;C:\Program Files (x86)\IntelSWTools\openvino\opencv\bin;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64_win\compiler;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;%PY_HOME%;%PY_HOME%\Lib;%PY_HOME%\DLLs;%PY_HOME%\Lib\lib-tk;%PY_HOME%\Scripts;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Users\LaserTrac\Pictures\osm2pgsql-bin;C:\Program Files\PostgreSQL\10\bin;C:\mapnik-v2.2.0\lib;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\ms4w\Apache\cgi-bin;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Users\LaserTrac\Downloads\geckodriver-v0.26.0-win64;C:\Users\LaserTrac\Documents\ffmpeg\ffmpeg-20200209-5ad1c1a-win64-static\bin;C:\Program Files\PuTTY\;C:\apache-maven-3.6.3\bin;C:\Program Files\Google Protobuf\bin;C:\tensorflow1\models\research\object_detection;C:\tensorflow1\models\research\slim;C:\tensorflow1\models\research;C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\bin;C:\Program Files\Java\jdk-13.0.2\bin;C:\ninja;C:\Users\LaserTrac\Downloads\sample\mingw\mingw32\bin;C:\msys64\usr\bin;C:\Program Files\CMake\bin;C:\Users\LaserTrac\AppData\Local\Microsoft\WindowsApps;C:\mapnik-v2.2.0\bin;C:\mapnik-v2.2.0\lib;C:\Users\LaserTrac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\LaserTrac\AppData\Roaming\npm;C:\Program Files\Oracle\VirtualBox;"

编辑:下面的脚本来自opnevino工具包示例

from __future__ import print_function
import subprocess
import os
#os.system("C:\\Windows\\System32\\cmd.exe /c C:\\Users\\LaserTrac\\Desktop\\my_vars.bat")
#subprocess.call([r'C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat'])
subprocess.call([r'C:\Users\LaserTrac\Desktop\my_vars.bat'])


#!/usr/bin/env python
  

import sys
import os
from argparse import ArgumentParser, SUPPRESS
import cv2
import numpy as np
import logging as log
from openvino.inference_engine import IECore
import datetime

#log.basicConfig(format="[ %(levelname)s ] %(message)s", level=log.INFO, stream=sys.stdout)
log.info("Loading Inference Engine")
ie = IECore()

# --------------------------- 1. Read IR Generated by ModelOptimizer (.xml and .bin files) ------------
#model_xml = args.model
model_xml = "D:/openvino/2/frozen_inference_graph.xml"
model_bin = os.path.splitext(model_xml)[0] + ".bin"
#log.info("Loading network files:\n\t{}\n\t{}".format(model_xml, model_bin))
net = ie.read_network(model=model_xml, weights=model_bin)
# -----------------------------------------------------------------------------------------------------

根据评论中的建议,我尝试将os.environ设置为如下,并使用print()进行检查

import os
#os.system("C:\\Windows\\System32\\cmd.exe /c C:\\Users\\LaserTrac\\Desktop\\my_vars.bat")
#subprocess.call([r'C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat'])
# subprocess.call([r'C:\Users\LaserTrac\Desktop\sample.bat'])
# import set_vars
os.environ["ROOT"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino"
os.environ["INTEL_OPENVINO_DIR"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino"
os.environ["INTEL_CVSDK_DIR"] = "C:\Program Files (x86)\IntelSWTools\openvino"
os.environ["OpenCV_DIR"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\opencv\\cmake"
os.environ["InferenceEngine_DIR"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\share"
os.environ["HDDL_INSTALL_DIR"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\external\\hddl"
os.environ["ngraph_DIR"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\ngraph\\cmake"
os.environ["PYTHONPATH"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\open_model_zoo\\tools\\accuracy_checker;C:\\Program Files (x86)\\IntelSWTools\\openvino\\python\\python3.7;C:\\Program Files (x86)\\IntelSWTools\\openvino\\python\\python3;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\model_optimizer"

os.environ["PATH"] = "C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\ngraph\\lib;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\external\\tbb\\bin;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\bin\\intel64\\Release;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\bin\\intel64\\Debug;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\inference_engine\\external\\hddl\\bin;C:\\Program Files (x86)\\IntelSWTools\\openvino\\deployment_tools\\model_optimizer;C:\\Program Files (x86)\\IntelSWTools\\openvino\\opencv\\bin;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64_win\\compiler;C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS Client\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;%PY_HOME%;%PY_HOME%\\Lib;%PY_HOME%\\DLLs;%PY_HOME%\\Lib\\lib-tk;%PY_HOME%\\Scripts;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Program Files\\Git\\cmd;C:\\Program Files\\dotnet\\;C:\\Users\\LaserTrac\\Pictures\\osm2pgsql-bin;C:\\Program Files\\PostgreSQL\\10\\bin;C:\\mapnik-v2.2.0\\lib;C:\\Program Files\\TortoiseSVN\\bin;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\ms4w\\Apache\\cgi-bin;C:\\Program Files\\nodejs\\;C:\\ProgramData\\chocolatey\\bin;C:\\Users\\LaserTrac\\Downloads\\geckodriver-v0.26.0-win64;C:\\Users\\LaserTrac\\Documents\\ffmpeg\\ffmpeg-20200209-5ad1c1a-win64-static\\bin;C:\\Program Files\\PuTTY\\;C:\\apache-maven-3.6.3\\bin;C:\\Program Files\\Google Protobuf\\bin;C:\\tensorflow1\\models\\research\\object_detection;C:\\tensorflow1\\models\\research\\slim;C:\\tensorflow1\\models\\research;C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Scripts;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\Program Files\\Java\\jdk-13.0.2\\bin;C:\\ninja;C:\\Users\\LaserTrac\\Downloads\\sample\\mingw\\mingw32\\bin;C:\\msys64\\usr\\bin;C:\\Program Files\\CMake\\bin;C:\\Users\\LaserTrac\\AppData\\Local\\Microsoft\\WindowsApps;C:\\mapnik-v2.2.0\\bin;C:\\mapnik-v2.2.0\\lib;C:\\Users\\LaserTrac\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\LaserTrac\\AppData\\Roaming\\npm;C:\\Program Files\\Oracle\\VirtualBox"

print(os.environ["PYTHONPATH"])
import from openvino.inference_engine import IECore

print(os.environ[“PYTHONPATH”])打印我设置的正确值,但我得到的错误是没有名为openvino的模块,如果我直接在cmd中从bat文件中设置这些变量,然后在同一cmd中执行我的py文件,它就会工作

问题是我想在环境变量中设置openvino安装的物理路径,以便在下一行中我可以执行“导入openvino”,并且os.environ在python.exe进程启动后设置环境变量,所以这可能是不可能的,os environ可能仅用于数据变量类型。我说的对吗


Tags: importmodelbinosdeploymentfilesprogramtools

热门问题