我为我的代码创建了一个简单的更新检查函数,我设置为每次执行大量代码之前运行。它通知用户可以下载新版本。
这是一个MWE:
import urllib
def updater(__version__):
try:
# Get latest version number from master repo at Github.
f = urllib.urlopen("https://raw.githubusercontent.com/chrisglass"
"/django_polymorphic/master/polymorphic/__version__.py")
s = f.read().split('"')
if s[-2] != __version__:
print "New version {} is available.".format(s[-2])
except:
pass
# Call function to check if new version is available.
__version__ = '0.1'
updater(__version__)
(那个回购不是我的,我在这个例子中使用它,因为我使用了它的__version.py__
文件的类似版本)
这很好用,但是我担心Github最终会花太多时间做出回应,这会阻碍代码的执行。
有没有办法在说过5秒后跳出try
块?这是推荐的解决方法吗?
答案 0 :(得分:2)
使用urllib2
,其urlopen
有一个超时参数。
urllib2.urlopen(url [,data [,timeout [,cafile [,capath [,cadefault [,context]]]]))