我的问题是,在Eclipse中以“运行模式”运行时,我的代码无声地崩溃(只是停止了),但是在“调试模式”下运行并从控制台启动时正在运行。 我正在使用Eclipse Kepler,Python 2.7.6。
我的主要代码是:
#...
values = self._nibeparser.parse_values(responses["serviceinfo"])
names_dict = self._nibeparser.parse_valuenames(responses["serviceinfo"])
#...
响应中的参数是字符串格式的html站点。 这是方法parse_values的开头:
def parse_values(self, page):
self._logger.debug("Parse values from page")
return_dict = {}
soup = BeautifulSoup(page, "lxml")
self._logger.info(soup.prettify())
#...doing some parsing
这是方法parse_valuenames的开头:
def parse_valuenames(self, page):
self._logger.debug("Parse valuenames from page")
self._logger.debug(page)
self._logger.debug(type(page))
return_dict = {}
self._logger.debug("a")
soup = BeautifulSoup(page, "lxml")
self._logger.info(soup.prettify())
#...
该代码未到达最后一个记录程序语句。没有错误信息,只是停止了。在“运行”模式下,如果我在main中调用parse_values来分解行,则方法parse_valuenames起作用。
我的假设是,在调用方法parse_valuenames时可能会在内部进行检查,是否需要再次创建BeautifulSoup实例。它不会被创建,因为它可能仍在parse_values方法的缓存中。刚刚检查之后,它可能会被销毁,因为先前的调用已完成。这使程序停止。 我的假设可以吗?如何检查和预防?