无法安装PySpatiaLite模块(“SyntaxError:调用'print'时缺少括号”)

时间:2018-06-07 18:22:59

标签: python python-3.x shell installation python-module

当我跑步时

 python3 -m pip install pyspatialite

我收到以下错误:

Collecting pyspatialite
  Using cached https://files.pythonhosted.org/packages/cc/2a/ffb126f3e8890ab0da951a83906e54528a13ce4b913303dea8bed904e160/pyspatialite-3.0.1-alpha-0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-14jnmfoo/pyspatialite/setup.py", line 66
        print "Is sphinx installed? If not, try 'sudo easy_install sphinx'."
                                                                           ^
    SyntaxError: Missing parentheses in call to 'print'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-14jnmfoo/pyspatialite/

我不明白这个问题。 PySpatiaLite模块中是否存在语法错误?我该怎么办呢?

我在Windows 10中使用Python 3.5和Linux Bash Shell。如果需要任何其他信息,请在评论中告诉我,我将编辑问题。

2 个答案:

答案 0 :(得分:1)

似乎它是python 3中的一个已知问题: https://github.com/lokkju/pyspatialite/issues/27

答案 1 :(得分:1)

print "Is sphinx installed? If not, try 'sudo easy_install sphinx'."

似乎这个库是用Python 2.7编写的,因为它们使用的是Python 2 print语句。当pip3运行库setup.py时,您收到错误:

SyntaxError: Missing parentheses in call to 'print'

完全可以预期正确的Python 3语法:

print("Is sphinx installed? If not, try 'sudo easy_install sphinx'.")

您可以切换到Python 2.7以编写与此接口的代码,或者联系贡献者以获取帮助。看看他们关于PyPi(https://pypi.org/project/pyspatialite/)的文档,看起来该项目仍处于Alpha状态,并且自2013年以来一直没有使用新版本进行更新。我不会期望在不支持源代码的情况下兼容Python 3并自己纠正。

修改

查看GitHub提交(https://github.com/lokkju/pyspatialite/commits/master)自2013年以来已经合并了少量提交,但我仍然不希望Python 3支持。