blakev / python-syncthing

Python bindings to the Syncthing REST interface.
MIT License
75 stars 24 forks source link

Strange top level import issue #24

Open lingfish opened 5 years ago

lingfish commented 5 years ago

Python 2.7.13 syncthing 2.3.1

I have no idea why the interpreter is hitting line 41, but it is:

(syncthing) jason@host:~$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from syncthing import Syncthing
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jason/venv/syncthing/local/lib/python2.7/site-packages/syncthing/__init__.py", line 41
    raise SyncthingError(msg) from exc
                                 ^
SyntaxError: invalid syntax
>>> from syncthing import Syncthing
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name Syncthing

Full import:

(syncthing) jason@host:~$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import syncthing
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jason/venv/syncthing/local/lib/python2.7/site-packages/syncthing/__init__.py", line 41
    raise SyncthingError(msg) from exc
                                 ^
SyntaxError: invalid syntax
>>> import syncthing
>>> s = syncthing.Syncthing()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Syncthing'
>>> 
lingfish commented 5 years ago

Appears to be a Python 2 vs 3 thing. When using a 3 virtualenv, it works fine.

blakev commented 5 years ago

@lingfish yeah, Python 3 only. I'd accept pull requests if you want to support Python2 as well.

lingfish commented 5 years ago

Ok, I may have a stab at it.

Would have been useful if your doco clearly stated Python version support, and any code cleared of hints that it did in fact support 2.

blakev commented 5 years ago

@lingfish actually this is a bug, i haven't worked on this library for a long time and it should be version-2 compatible. I will fix it!