如何设置浏览器为web浏览器打开localhost?

时间:2012-03-20 00:52:32

标签: python browser

以下是我的代码:

execfile("main.py");
    url = "localhost:9988";
    webbrowser.open_new_tab(url);

“main.py”将启动localhost,但是当我运行脚本时,它不会转到webbrowser.open_new_tab(url),因为它卡在localhost中。

有没有办法启动localhost然后在选定的浏览器(即chrome / firefox)中打开一个新选项卡到localhost?

2 个答案:

答案 0 :(得分:3)

由于main.py在请求之前不会退出(因为它是服务器),因此您需要创建一个新进程才能调用webbrowser.open_new_tab。您可以使用subprocess.Popenos.fork或类似内容。

subprocess.Popen((sys.executable, 'main.py'))应该可以解决问题。

答案 1 :(得分:3)

使用Popen执行以下操作。它应该工作。您必须将python -m SimpleHTTPServer 8000替换为您自己的可执行文件。

<强>代码:

import subprocess
import webbrowser
subprocess.Popen(['python', '-m', 'SimpleHTTPServer', '8000'])
webbrowser.open_new_tab('localhost:8000')

<强>执行:

[12:21:49] babil@quad:[/tmp]$ python
Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import subprocess
>>> import webbrowser
>>> 
>>> subprocess.Popen(['python', '-m', 'SimpleHTTPServer', '8000'])
<subprocess.Popen object at 0x7f09924df210>
>>> Serving HTTP on 0.0.0.0 port 8000 ...

>>> webbrowser.open_new_tab('localhost:8000')
True
>>> localhost.localdomain - - [20/Mar/2012 12:22:29] "GET / HTTP/1.1" 200 -
Created new window in existing browser session.
localhost.localdomain - - [20/Mar/2012 12:22:29] code 404, message File not found
localhost.localdomain - - [20/Mar/2012 12:22:29] "GET /favicon.ico HTTP/1.1" 404 -

>>>