I am trying to code a farm.bot script in Python 3 and the example I am going off of is in 2.7 (https://github.com/FarmBot-Labs/FarmBot-Python-Examples/blob/master/full_example.py). I was wondering since as far as I know Python 3 does not support the urllib2 import is there a simple conversion to Python 3?
Joe,
It may work to just change the import urllib2
to:
import urllib.request, urllib.error, urllib.parse
Or even better, your distro should have a Python 3 conversion script. You may be able to run something like this to convert the file from Python 2 to Python 3:
2to3-2.7 -w full_example.py
(Edit: that said, the script appears to fail after conversion due to something else…)
My code now runs thanks @jebba
I do get this error now though
request = urllib.request("https://" + server_host + "/api/tokens")
TypeError: 'module' object is not callable
has (“https://” + server_host + “/api/tokens”) been changed?
@Joe That looks like a semantic error in the code rather than a URL typo. I can’t provide help with bug hunting, but the URL looks correct.
TypeError: 'module' object is not callable
The error is stating that you are trying to call urllib.request
as though it were a function, but it is not a function, it is a module (and a module can’t be called). Not much of a Pythonista myself, but perhaps you need to call a function within the module?