anki-sync-server icon indicating copy to clipboard operation
anki-sync-server copied to clipboard

httplib2 is not declared as a dependency

Open pganssle opened this issue 8 years ago • 4 comments

When installing in a fresh virtualenv, trying to run ankiserverctl.py gives:

ImportError: No module named httplib2

I believe this is just a matter of adding httplib2 into the dependencies in setup.py. Installing httplib2 with pip fixes the issue.

pganssle avatar Apr 23 '16 17:04 pganssle

Hmmm.. looking more closely at this, it turns out it's actually an issue with how Anki is packaged, I think:

  File ".../venv/local/lib/python2.7/site-packages/AnkiServer/apps/sync_app.py", line 34, in <module>
    from anki.sync import Syncer, MediaSyncer
  File ".../anki/anki/sync.py", line 11, in <module>
    import httplib2

Looks like the anki dependency is not explicitly declared here, and is being pulled in from the system install of anki, so the virtualenv isn't pulling in Anki's dependencies. Not sure if you want to make them an explicit dependency of this package even though they aren't used directly. Seems like a weird way to do things.

pganssle avatar Apr 27 '16 01:04 pganssle

httplib2 is meant to be bundled with the anki source code, and we shouldn't have to install it separately. How did you go about installing anki? Is the thirdparty/httplib2 directory missing from your anki code?

dsnopek avatar Apr 27 '16 15:04 dsnopek

@dsnopek Yes, agreed that it should be shipping with Anki. As I mentioned in my PR, I think an alternate approach would be to mention this in the documentation about using a virtualenv.

It's been a long time since I installed Anki, but I'm on Ubuntu 15.04 and if I had to guess I probably used apt-get install anki. Looking at /usr/share/anki/anki, I don't see any thirdparty folder in there. Maybe I can spin up a clean container this weekend and try installing Anki on it fresh to see if this persists.

Not the right place to discuss it, I guess, but I think it would be nice if the library portions of anki were spun off into their own library that is distributed by PyPI. That would make packaging much nicer (since, as is, you need to install Anki separately from the install process of anki-sync-server if you are going through pip, even if you have no need for the graphical front-end).

pganssle avatar Apr 27 '16 15:04 pganssle

Ok, thanks!

Well, we bundle a copy of Anki (or at least we should be doing that - it's possible the last release got messed up?) in anki-sync-server, so if you install with pip you should have everything you need. But if that's broken too, please open another issue.

dsnopek avatar Apr 27 '16 16:04 dsnopek