在调用另一个脚本时出现问题,通过调用python main.py(然后调用test3.py ),但是当我通过Web服务器做它给下面的错误是神秘的为什么我不能通过网络服务器使用子进程模块执行另一个python脚本
我不能把这个(TEST3只是打印...)
#proc = subprocess.Popen(['python', 'test3.py'], stdout=subprocess.PIPE)
但能正常工作
proc = subprocess.Popen(['ls', '-la'], stdout=subprocess.PIPE)
错误日志中/var/log/httpd-error.log在FreeBSD
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] Traceback (most recent call last):
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] File "/usr/local/www/apache22/data/main2.py", line 22, in <module>
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61]
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] proc = subprocess.Popen(['python', 'test3.py'], stdout=subprocess.PIPE)
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] File "/usr/local/lib/python2.7/subprocess.py", line 679, in __init__
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61]
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] errread, errwrite)
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] File "/usr/local/lib/python2.7/subprocess.py", line 1228, in _execute_child
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61]
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] raise child_exception
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] OSError
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] :
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] [Errno 2] No such file or directory
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61]
[Thu Mar 01 12:26:55 2012] [error] [client 64.102.194.61] File does not exist: /usr/local/www/apache22/data/favicon.ico
这就是它!我错过了这个B/C我虽然我的路径已经是正确的(我可以在控制台上键入python并且python出现),但是它对于web服务器确实不正确!不知道这是如何不同,我将不得不做一些阅读。建议在FreeBSD上做这件事很有帮助。我的路径实际上是FreeBSD上的/ usr/local/bin/python!作品像一个魅力...我打字这么长的B/C它不会让我点击复选标记呢.... 20秒...好吧,让我们这样做 – 2012-03-01 17:48:38