Ich muss meinen Code rückwärts kompatibel mit Python2.6 und BeautifulSoup 3 machen. Mein Code wurde mit Python2.7 und in diesem Fall mit BS4 geschrieben. Aber wenn ich versuche es bei squeezy-Server zu laufen, ich diesen Fehler (es hat python2.6 und bs3):BeautifulSoup - TypeError: 'NoneType' -Objekt ist nicht aufrufbar
try:
from bs4 import BeautifulSoup
except ImportError:
from BeautifulSoup import BeautifulSoup
gmp = open(fname, 'r')
soup = BeautifulSoup(gmp)
p = soup.body.div.find_all('p')
p = soup.body.div.find_all('p')
TypeError: 'NoneType' object is not callable
Wenn ich ändern:
p = soup.body.div.findAll('p')
dann bekomme ich diese Fehlermeldung:
p = soup.body.div.findAll('p')
TypeError: 'NoneType' object is not callable
Update des geworfenen Fehlers
File "/home/user/openerp/7.0/addons/my_module/models/gec.py", line 401, in parse_html_data
p = soup.body.div.findAll('p') #used findAll instead of find_all for backwards compatability to bs3 version
TypeError: 'NoneType' object is not callable
In beiden Fällen funktionieren beide Ansätze auf meinem Ubuntu mit python2.7 und bs4, aber nicht mit squeezy. Gibt es einen anderen Unterschied zwischen den Versionen, die ich nicht sehe/kenne und mir diesen Fehler gibt?
Es hat keinen Sinn, auf 'BeautifulSoup import BeautifulSoup' (Version 3) zurückzugreifen, wenn nur Version 4 verwendet wird. –
Sie sollten sehen, dass ich geschrieben habe, ich versuchte, rückwärtskompatible Syntax zu verwenden, aber immer noch denselben Fehler. – Andrius