【问题标题】:Invalid syntax error with numba installed with pip使用 pip 安装 numba 时出现无效语法错误
【发布时间】:2016-08-09 12:07:41
【问题描述】:

当我尝试在我的virtualenv 中运行此 Python 代码时:

#!./env/bin/python3

from numba import jit
@jit(nopython=True)

print("Hello World")

我收到以下错误:

(env) root@LANTI-PC:/mnt/c/www/python/flask/app# ./test.py
  File "./test.py", line 6
    print("Hello World")
        ^
SyntaxError: invalid syntax

这是我的requirements.txt:

click==6.6
Flask==0.11.1
funcsigs==1.0.2
itsdangerous==0.24
Jinja2==2.8
llvmlite==0.12.1
MarkupSafe==0.23
numba==0.27.0
numpy==1.11.1
pybars3==0.9.1
PyMeta3==0.5.1
Werkzeug==0.11.10

llvm-config 版本:3.7.1

另外,如果我只执行import numba 或from numba import jit,文件将被执行,但比仅使用python3 执行时稍慢,没有任何 numba 导入。

【问题讨论】:

  • 我删除了,还是出现同样的错误。
  • 抱歉,这不是问题所在。问题出在前一行。 @jit() 应该做什么?它是一个装饰器,不能应用于函数调用 (print())。
  • 我关注此文档:numba.pydata.org/numba-doc/0.27.0/user/jit.html 它声明:“使用此装饰器,您可以标记一个函数以通过 Numba 的 JIT 编译器进行优化”我想使用 LLVM 工具链设置一个简单的 Hello World python 应用程序对其他框架进行基准测试,例如 Node/Express、Node/Koa、Go/Iris。我以前从来没有用过python编程,所以请原谅我。
  • 您似乎误解了它的作用。 Numba 将你的函数代码编译成更高效的代码; print 已经编译。您只能将其应用于您编写的函数,它不会神奇地加速 Python 核心函数。
  • 我明白了,感谢您清除此问题。没有这个问题,但是如果我想通过简单的替换编译器(包括print)来加速整个Python,我唯一的选择是pypy? cython 的工作方式与 numba 相同?

标签: python python-3.x pip virtualenv numba


【解决方案1】:

请删除您对 @jit 装饰器的使用,因为那里没有装饰功能,这就是错误的原因。装饰器包装了函数,所以没有它们它们是无用的和错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2021-04-29
    相关资源
    最近更新 更多