异常AttributeError:“'NoneType'对象中没有属性'path'”

时间:2016-07-25 18:17:31

标签: python-2.7 attributeerror try-except

我正在调试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()是错误的......

你有什么想法......?我将不胜感激任何帮助!

谢谢。

5 个答案:

答案 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对象上访问属性NoneTypeNoneType个对象没有属性。所以你可能需要查看_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

  • 以下内容会给我错误消息:&#39; NoneType&#39;对象没有属性&#39; path&#39;

browser.quit()

  • 以下内容不会给出错误

browser.close()

所以问题是你的对象使用了错误的方法!