【发布时间】: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