On Thursday, April 28, 2016 at 1:11:03 AM UTC+3, Steven G. Johnson wrote:
>
> ERROR: LoadError: PyError (:PyObject_Call) <type
>> 'exceptions.AttributeError'>
>> AttributeError("'PyCall.jl_Function' object has no attribute 'func_code'"
>> ,)
>>
>>
> The foo.func_code attribute of a Python function foo returns a code object
> <http://akaptur.com/blog/2013/11/15/introduction-to-the-python-interpreter-2/>
> representing
> the compiled Python bytecode for foo. A Julia function is not going to
> have this attribute, because it has no Python bytecode.
>
OK, I see, thanks. I found this from the module source (client.py):
if sys.version_info[0] < 3:
argcount = self.on_connect.func_code.co_argcount
else:
argcount = self.on_connect.__code__.co_argcount
I thought this is the limitation and installed Python3, unfortunately then
I got an error that __code__ is missing:
ERROR: LoadError: PyError (:PyObject_Call) <class 'AttributeError'>
AttributeError("'PyCall.jl_Function' object has no attribute '__code__'",)
Well, func_code seems to be __code__ in v3, so still the same problem...
Maybe I have to contact the authors, anyone have another idea how to use
MQTT from Julia (of course mosquitto_pub and _sub should work)?
Thanks,
Kaj
> It's really surprising to me that the paho.mqtt.client module only works
> for callbacks with func_code attributes, which means that it only works for
> pure Python functions. Maybe you can inquire with the Paho authors to
> find out why (and whether they can lift this limitation in a future
> version).
>