Web.py 安装错误

Web.py installation error

# Python Version

λ python
Python 3.7.0b5 (v3.7.0b5:abb8802389, May 31 2018, 01:54:01) [MSC v.1913 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>




λ pip3 install web.py
Collecting web.py
  Using cached https://files.pythonhosted.org/packages/fc/58/21649fc1849b1f688f3d42e25e79615cc573469ea57eaa9e6af70b1e3b87/web.py-0.39.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\KARANJ~2\AppData\Local\Temp\pip-install-isj4gcc5\web.py\setup.py", line 6, in <module>
        from web import __version__
      File "C:\Users\KARANJ~2\AppData\Local\Temp\pip-install-isj4gcc5\web.py\web\__init__.py", line 14, in <module>
        import utils, db, net, wsgi, http, webapi, httpserver, debugerror
      File "C:\Users\Karanjit Singh\AppData\Roaming\Python\Python37\site-packages\db\__init__.py", line 69
        print "var", var
                  ^
    SyntaxError: Missing parentheses in call to 'print'. Did you mean print("var", var)?

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\KARANJ~2\AppData\Local\Temp\pip-install-isj4gcc5\web.py\

基本上,您正在尝试为 Python 3.7 安装模块,但此模块仅适用于 Python 2.x。由于在某些方面 Python 的这些版本不兼容,因此您会遇到错误。

在你的例子中,print "var", var 是 Python 2.x-only 语法,它在 Python 3.x.[=17= 中不起作用]

因此,要解决此问题,您应该使用 pip install web.py 安装 Python 2.x 的模块。另一种选择是使用名为 2to3 的工具将模块的代码转换为 Python 3.x 语法,但是,如果模块使用一些严重依赖 Python 2.x 特性的 C 扩展。

此外,web.py 的 official site 在首页上说:

The above version [0.39] only supports Python 2. If you looking for Python 3 support, try the experimental version.

pip install web.py==0.40-dev1

我猜,他们的命令有点不正确,因为应该使用 pip3,而不是 pip。所以,如果你想要 Python 3 支持,请先尝试实验版本。