我正在尝试安装node.js,然后使用appium -v
import os,subprocess
os.system('node.msi')
os.system('exit')
os.system('appium -v')
node.msi
是我计算机上的节点文件。当我通过cmd执行此操作时,如果我在新cmd中执行此操作,则appium -v
可以正常工作,但如果我继续使用相同的cmd,它就无法工作。所以我希望退出后,我的代码应该有效。谁能指出我在这里做错了什么。
答案 0 :(得分:0)
很可能,node.msi的安装会修改系统的PATH
变量。在您运行的Python进程中,此更改不会显示。
如果您知道节点安装的路径,则可以在诸如
之类的调用中明确指定它subprocess.run([r'C:\node\bin\apium.exe', '-v'])
答案 1 :(得分:0)
我假设你在这里运行Windows。当控制台启动时,它会从注册表中读取其环境。这解释了为什么当你打开第二个cmd 控制台时它可以工作。
这意味着您必须要求Python在新控制台(而不仅仅是新的appium - v
shell)中输入命令cmd.exe
。
可以使用os.system
:
start
完成
os.system("start /W appium -v")
或取决于真正的appium
:
os.system("start /W cmd /c appium -v")
您也可以直接使用子进程模块(提供比os.system
更多的配置)
p = subprocess.Popen("cmd / c appium -v", creationflags=subprocess.CREATE_NEW_CONSOLE)
p.wait()
根据appium的不同,以下内容就足够了:
p = subprocess.Popen("appium -v", creationflags=subprocess.CREATE_NEW_CONSOLE)
p.wait()