有没有办法从脚本中启动Python解释器,方式类似于仅使用python -i
,以便保留当前脚本中的对象/命名空间等?不使用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
在打印出回溯之后启动解释器,所以我不得不调用交互式解释器 - 替换脚本的执行以保留服务器连接 - 从脚本中
答案 0 :(得分:2)
您是否尝试过阅读错误消息? :)
=
是赋值,您需要比较运算符==
。
答案 1 :(得分:0)
好吧,我终于开始工作了。
基本上,我将整个try
/ except
/ else
子句放在while True:
循环中,else
套件为{{1} }语句和break
套件的结尾是except
语句。结果是,如果用户放入一个没有完全兼容的XML-RPC2服务器监听的地址,它现在会不断循环。结果如下:
continue
非常感谢!
......我必须再等一天才能接受这个......