calibre-web icon indicating copy to clipboard operation
calibre-web copied to clipboard

Manual installation on Windows: ImportError: cannot import name 'bind_unix_socket'

Open andrewchenshx opened this issue 1 year ago • 4 comments

Describe the bug/problem following the instruction of this page https://github.com/janeczku/calibre-web/wiki/Manual-installation to install on Windows, the error is as following: ModuleNotFoundError: No module named 'gevent'

To Reproduce python cps.py

Expected behavior no errors

Screenshots

Traceback (most recent call last):
  File "C:\Users\Andrew\Documents\GitHub\calibre-web\cps\server.py", line 27, in <module>
    from gevent.pywsgi import WSGIServer
ModuleNotFoundError: No module named 'gevent'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Andrew\Documents\GitHub\calibre-web\cps.py", line 28, in <module>
    from cps.main import main
  File "C:\Users\Andrew\Documents\GitHub\calibre-web\cps\__init__.py", line 36, in <module>
    from .server import WebServer
  File "C:\Users\Andrew\Documents\GitHub\calibre-web\cps\server.py", line 40, in <module>
    from tornado.netutil import bind_unix_socket
ImportError: cannot import name 'bind_unix_socket' from 'tornado.netutil' (C:\Users\Andrew\py_envs\py310_calibre\lib\site-packages\tornado\netutil.py)

Environment (please complete the following information):

  • OS:Windows 10
  • Python version: python 3.10
  • Calibre-Web version: f0cc93ab
  • Docker container: None
  • Special Hardware:
  • Browser:

Additional context

andrewchenshx avatar Jan 13 '24 11:01 andrewchenshx

Upps, forgot something

OzzieIsaacs avatar Jan 13 '24 11:01 OzzieIsaacs

gevent should be added to requirements.txt. manually pip install gevent, then starts w/o errors.

andrewchenshx avatar Jan 13 '24 11:01 andrewchenshx

Please update to the newest commit version, should work afterwards

OzzieIsaacs avatar Jan 13 '24 11:01 OzzieIsaacs

Calibre-web supports 2 servers Gevent and Tornado, Tornado is the default one. Gevent is therefore listed in the optional-requirements.txt. The error is only in the Tornado part and only on Windows and is now fixed.

OzzieIsaacs avatar Jan 13 '24 11:01 OzzieIsaacs