Articles of 进程popen

从popen中检索环境variables

我正在转换一个较旧的batch file系统为Python。 我遇到了一个batch file,它为调用它的batch file设置了环境variables。 这些值然后再次用于batch file的调用。 我的环境variables似乎会降低呼叫stream量,但我无法将其恢复。 我在这里读了两个不同的主题,谈论类似的东西,但是不完全一样。 是否有可能从subprocess中检索这些环境variables? Python子stream程/ Popen与修改后的环境 使用Popen在Python中设置环境variables 我现在在做什么: p = Popen(process_, cwd=wd, stdout=PIPE, shell=True, universal_newlines=True, stderr=STDOUT, env=env) 旧的bat文件stream: foo.bat calls foo-setparam.bat foo-setparam.bat sets some variables foo.bat uses these variables foo.bat calls bar.bat bar.bat uses variables set by both foo.bat and foo-setparam.bat 更新:我曾尝试在我的popen参数前添加“call”。 我有同样的行为。

为什么Python的subprocess在unix和windows之间变得如此不同?

我正在尝试用Python编写跨平台的代码。 代码应该产生新的shell并运行代码。 这导致我看看Python的subprocess工具,特别是它的Popen部分。 所以我读通过这个类Popen文档的文档,并发现太多的“如果在Unix /如果在Windows”语句。 除非我误解了doc,否则不是非常跨平台的。 到底是怎么回事? 我明白,这两个操作系统是不同的,但真的,没有办法写一个通用的接口? 我的意思是,相同的论点“窗口是不同于Unix”可以适用于os , system等,他们似乎都是100%的跨平台。

如何保持subprocess.Popen控制台在Windows上崩溃后打开?

我的目标是用每个Popen进程的几个不同的参数调用主程序,每个进程都有自己的控制台窗口。 但是,一旦遇到崩溃,就会closures那个控制台,而我真的很想保持它打开。 import subprocess from subprocess import CREATE_NEW_CONSOLE import time for i in range(1, 5): subprocess.Popen(["python", "main.py", str(i), str(i)], close_fds=False, creationflags=CREATE_NEW_CONSOLE) time.sleep(3) 是否有可能通过subprocess.Popen进程创build一个新进程。打开并保持控制台打开让我读取错误? 链接到子stream程文档 。

Windows python脚本运行服务器并继续

我正在处理我的python脚本来启动一个服务器,可能会在后台或不同的进程中,然后在杀死启动的服务器之前再做一些处理。 一旦剩余的处理结束,然后杀死启动的服务器。 例如 server_cmd = 'launch_server.exe -source '+ inputfile print server_cmd cmd_pid = subprocess.Popen(server_cmd).pid … … … #Continue doing some processing cmd_pid.terminate() # Once the processing is done, terminate the server 一些如何启动服务器后,脚本不会继续作为服务器可能正在无限循环运行侦听请求。 有没有一种很好的方式发送这个过程在后台,所以它不希望命令行input。 我正在使用Python 2.7.8

inputfilter在Windows XP上使用doxygen 1.6.3的问题

我正在尝试使用doxygen为我写的一些matlab类生成文档。 我正在使用doxygen-matlab软件包,其中包括一个perl脚本,将matlab .m文件转换为c ++风格的注释文件,以便doxygen可以读取它们。 在我的doxy文件中,我已经设置(根据说明) FILTER_PATTERNS = *m=C:/doxygenMatlab/m2cpp.pl 但是,代码运行时,不是在input文件上运行脚本,而是使用.pl的默认窗口设置打开脚本。 IE,如果我把.pl和记事本关联起来,脚本就会被记事本打开一次,对于doxygen试图parsing的每个input文件。 如果我将.pl与perl.exe相关联,则脚本运行并引发无参数错误 参数必须在C:\ doxygenMatlab \ m2cpp.pl第4行包含文件名-1。 doxygen文件说 Doxygen will invoke the filter program by executing (via popen()) the command <filter> <input-file> 所以我想知道是否有问题,我可以修复popen()和窗口。

访问被拒绝时使用popen – Python

我正在使用popen在Django应用程序中发送一些命令。 问题是,我得到[错误5]访问被拒绝 ,显然我没有访问cmd.exe ,似乎使用popen。 WindowsError在/ test / cmd / [错误5]访问被拒绝:'C:\ WINDOWS \ system32 \ cmd.exe / c dir' 我认为这是因为该应用程序位于具有有限权限的Web服务器之后。 有什么我们可以做的吗? 帮助将是真棒!

Popen给出“文件未find”错误(Windows / Python)

我试图通过subprocess.Popen运行控制台命令,每当我运行它,我得到的窗口“文件未find”的错误,即使在运行echo命令。 我也在使用线程模块制作的线程中使用Popen。 这是问题吗?

Windows服务中的Pythonsubprocess(无pipe道)

我已经使用CherryPy放在一个简单的Python Web服务器。 它作为我所做的Web应用程序的打印机,以便Web应用程序可以将POST详细信息打印到本地主机。 networking应用程序本身是从远程机器提供的。 本地python服务器生成一个postscript文件,然后用Ghostscriptsubprocess打印出来。 当我从命令行启动python脚本时,它完美的工作,但是对于生产,我希望它作为一个Windows服务运行。 因此,我已经把它做成了一个,但是我的subprocess.Popen没有很好地转换。 它得到一个200回应,后记文件生成正确,但Ghostscript不做任何事情。 我已经find了解决这个问题的方法,但是我只find解决方法,当有人想搞乱stdin / stdout / stderr。 在我的情况下,我不想尝试,因此无法find解决办法。 以下是我读过的一些链接。 http://bugs.python.org/issue1238747 http://bytes.com/topic/python/answers/851608-using-subprocess-popen-windows-service 这里是代码: import win32service import win32serviceutil import win32api import win32con import win32event import win32evtlogutil import os, os.path, sys, string import cherrypy import shutil import subprocess def CORS(): cherrypy.response.headers['Access-Control-Allow-Origin'] = '*' conf = { '/': { 'tools.sessions.on': True, 'tools.CORS.on' : […]

在Windows中的Python打开一个新的控制台

我有一些执行批处理命令的Python函数: subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True).stdout.read().decode('utf-8').rstrip() 在Linux中运行是可以的,但在Windows中运行时,它会在每个subprocess中打开一个新的控制台.Popen调用和前一个控制台不知道新控制台中的函数所做的任何修改。 我如何继续?

在Popen中避免shell = True

我试图在Windows中打开一个.txt文件。 代码如下: subprocess.Popen("C:\folder\file.txt", shell=True) 这工作得很好。 默认编辑器会自动打开并加载文件,但是,在通过shell调用调用(Windows中的cmd.exe)之前,我已经读过某个地方不太安全。 没有它,我怎样才能做到这一点。 简单地设置shell=False给我的错误: OSError: [WinError 193] %1 is not a valid Win32 application 现在,我可以尝试这个解决方法: subprocess.Popen("notepad C:\folder\file.txt") 但这只有在记事本可用时才有效,因此失去了一般性。