我正在调试python代码(python2.7.12),因为我的代码可以工作,但是当将推文发送到数据库时,我得到所有变量的NULL。
我得到的错误是:
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <function _remove at 0x10068f140> ignored
我假设此错误来自以下代码:
def put_tweets_in_database(tweets):
print "putting tweets in database"
errors = 0
count = 0
for tweet in tweets:
try:
commit_tweet_to_database(tweet, count, len(tweets))
count += 1
except Exception as e:
print e
session.rollback()
errors += 1
print 'there were {} errors'.format(errors)
我不认为函数commit_tweet_to_database()
是错误的......
你有什么想法......?我将不胜感激任何帮助!
谢谢。
答案 0 :(得分:2)
我也在处理这个错误。我尝试使用browser.close()方法,虽然它确实停止了 - 'NoneType'对象没有属性'path' - 从显示开始,我留下了一堆打开的firefox浏览器实例。
.close()方法关闭chrome,它不会在firefox中抛出NoneType错误,但它会使firefox保持打开状态。 .quit()方法关闭两个浏览器,但它会引发firefox的错误。
我正在为我的代码使用django的StaticLiveServerTestCase类。
我写了一个小调试器循环来测试。只需取消注释并注释掉.quit()和.close()语句。
class BaseTestCase(StaticLiveServerTestCase):
@classmethod
def setUp(self):
self.firefox = webdriver.Firefox()
self.chrome = webdriver.Chrome()
self.browsers = [self.firefox, self.chrome]
@classmethod
def tearDown(self):
for browser in self.browsers:
if browser == self.firefox:
print('firefox')
browser.close()
# browser.quit()
elif browser == self.chrome:
print('chrome')
browser.close()
# browser.quit()
我仍然不知道答案,但我认为这是朝着正确方向迈出的一步。
答案 1 :(得分:0)
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <function _remove at 0x10068f140> ignored
这表明在函数_remove
中,尝试在path
对象上访问属性NoneType
。 NoneType
个对象没有属性。所以你可能需要查看_remove
函数并从那里开始调试。
答案 2 :(得分:0)
听起来 - 尽管你的尝试&#34;子句失败,导致打印异常?我可能会向Exception catch添加更多调试,例如打印commit_tweet_to_database的参数,以确保您传递可行的参数。
答案 3 :(得分:0)
尝试删除以下代码:
import pdb;pdb.set_trace()
猜猜已经调用pdb.set_trace()
的脚本,你试图覆盖它。这可能是问题的原因。
答案 4 :(得分:-2)
我有同样的错误,这是我的情况:
browser = webdriver.Firefox()
browser.get(&#39; http://www.google.com&#39)
print browser.title
browser.quit()
browser.close()