python -i
現在のスクリプトのオブジェクト/名前空間などが保持されるように、単に使用するのと同様の方法で、 script 内から Python インタープリターを起動する方法はありますか? 使用しない理由python -i
は、スクリプトが XML-RPC サーバーへの接続を初期化し、エラーが発生した場合にプログラム全体を停止できるようにする必要があるためです。どうやら、次のようなことはできないため、有効な入力があるまでループできません。
#!/usr/bin/python -i
# -*- coding: utf-8 -*-
import xmlrpclib
# Create an object to represent our server.
server_url = str(raw_input("Server: "))
while not server = xmlrpclib.Server(server_url):
print 'Unable to connect to server. Please try again'
else:
print 'Xmlrpclib.Server object `__main__.server\' of URL `', server_url, "' created"
break
# Python interpreter starts...
なぜなら:
% chmod u+x ./rpcclient.py
% ./rpclient.py
Traceback (most recent call last):
File "./rpcclient.py", line 8
while not server = xmlrpclib.Server(server_url):
^
SyntaxError: invalid syntax
>>>
残念ながら、python -i
トレースバックを出力した直後にインタープリターを開始するため、スクリプト内から対話型インタープリターを呼び出す必要があります-スクリプトの実行を置き換えて、サーバー接続を保持します-