Есть ли способ запустить интерпретатор Python из скрипта, аналогично тому, как просто использовать python -i
, чтобы сохранить объекты / пространство имен и т. Д. Из текущего скрипта?Причина, по которой не используется python -i
, заключается в том, что скрипт инициализирует соединение с сервером XML-RPC, и мне нужно иметь возможность остановить программу whole в случае ошибки.Я не могу выполнить цикл, пока не получим действительный ввод, потому что, очевидно, я не могу сделать что-то вроде этого:
#!/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
запускает интерпретатор простопосле того, как он распечатывает трассировку, мне нужно как-то вызвать интерактивный интерпретатор - заменить выполнение скрипта, чтобы он сохранил соединение с сервером - из скрипта