[Biopython] Bio.Entrez.epost error with Python 3.2
Nicolas Joannin
nicolas.joannin at gmail.com
Sat Jan 26 07:42:19 EST 2013
Hello everyone,
I am having trouble with using Bio.Entrez.epost: see details below.
I have tried converting the variables to bytes, but everything I've tried
gives the same error message.
I'm guessing that this might be a bug in biopython when used with Python 3.
If not, could you please tell me where I got this wrong, and how I can fix
it?
Best regards,
Nicolas
Here are the details:
I have tried the following:
- post_h=Entrez.epost("nuccore",id="160418,160351")
- post_h=Entrez.epost(b"nuccore",id=b"160418,160351")
-
post_h=Entrez.epost("nuccore".encode("utf-8"),id="160418,160351".encode("utf-8")
>>> post_h=Entrez.epost("nuccore",id="160418,160351")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/Bio/Entrez/__init__.py",
line 97, in epost
return _open(cgi, variables, post=True)
File
"/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/Bio/Entrez/__init__.py",
line 436, in _open
handle = urllib.request.urlopen(cgi, data=options)
File
"/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/urllib/request.py",
line 138, in urlopen
return opener.open(url, data, timeout)
File
"/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/urllib/request.py",
line 367, in open
req = meth(req)
File
"/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/urllib/request.py",
line 1066, in do_request_
raise TypeError("POST data should be bytes"
TypeError: POST data should be bytes or an iterable of bytes. It cannot be
str.
Nicolas Joannin, Ph.D.
Bioinformatics Center
Kyoto University, Uji campus, Japan
More information about the Biopython
mailing list