2012-03-20 28 views
0

以下は私のコードです:webbrowser用にlocalhostを開くようにブラウザを設定するにはどうすればよいですか?

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

「main.pyは」localhostを開始しますが、私は、スクリプトを実行すると、それは、それがローカルホストで立ち往生しているため(URL)をwebbrowser.open_new_tabして行くことはありません。

ローカルホストを起動し、選択したブラウザ(つまりchrome/firefox)の新しいタブをlocalhostに開く方法はありますか?

答えて

3

あなたのmain.pyは(サーバであるため)要求されるまで終了しないので、webbrowser.open_new_tabを呼び出すために新しいプロセスを作成する必要があります。 subprocess.Popenos.forkなどを使用できます。

subprocess.Popen((sys.executable, 'main.py'))はすべきことです。

2

Popenとしてください。それは動作するはずです。 python -m SimpleHTTPServer 8000は、独自の実行可能ファイルで置き換える必要があります。

コード:

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

実行:

[12:21:49] [email protected]:[/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 - 

>>> 
関連する問題