为 python 安装 numba
Posted
技术标签:
【中文标题】为 python 安装 numba【英文标题】:Installing numba for python 【发布时间】:2013-01-13 04:22:38 【问题描述】:我正在尝试为 python 安装numba,但在按照主页上的说明进行操作后,我收到了无法找到 extension_types 页面的错误。
如果有人知道我做错了什么或者我错过了应该安装的东西,我将不胜感激。
非常感谢您。
Python 2.7.2+ (default, Jul 20 2012, 22:15:08)
Type "copyright", "credits" or "license" for more information.
IPython 0.10.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: import numba
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/home/mijc/Downloads/numba/<ipython console> in <module>()
/home/mijc/Downloads/numba/numba/__init__.py in <module>()
2 # type inferer
3 from numba.special import *
----> 4 from numba import module_type_inference
5
6 import os
/home/mijc/Downloads/numba/numba/module_type_inference.py in <module>()
6 from numba import *
7 from numba.minivect import minitypes
----> 8 from numba import typesystem, symtab
9
10 import numpy.random
/home/mijc/Downloads/numba/numba/typesystem/__init__.py in <module>()
2 from exttypes import *
3 from closuretypes import *
4 from ssatypes import *
5 from templatetypes import *
6 from typemapper import *
/home/mijc/Downloads/numba/numba/typesystem/basetypes.py in <module>()
6
7 import numba
----> 8 from numba import extension_types, error
9 from numba.minivect.minitypes import *
10 from numba.minivect.minitypes import map_dtype
ImportError: cannot import name extension_types
编辑: 我通过以下方式安装了 numba:
git clone https://github.com/numba/numba.git
cd numba
python setup.py install
当我尝试通过 pip 安装它时,我收到以下错误:
pip install numba --upgrade
Downloading/unpacking numba
Downloading numba-0.5.0.tar.gz (333Kb): 333Kb downloaded
Running setup.py egg_info for package numba
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/mijc/Downloads/numba/build/numba/setup.py", line 90, in <module>
cython_gdb=True),
File "/usr/local/lib/python2.7/dist-packages/Cython/Distutils/extension.py", line 108, in __init__
**kw)
TypeError: unbound method __init__() must be called with Extension instance as first argument (got Extension instance instead)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/mijc/Downloads/numba/build/numba/setup.py", line 90, in <module>
cython_gdb=True),
File "/usr/local/lib/python2.7/dist-packages/Cython/Distutils/extension.py", line 108, in __init__
**kw)
TypeError: unbound method __init__() must be called with Extension instance as first argument (got Extension instance instead)
----------------------------------------
Command python setup.py egg_info failed with error code 1
【问题讨论】:
你是如何安装 numba 的?我在这里没有问题:***.com/questions/14527364/… %%我用过点子。我安装了 Cython、llvmpy、meta 和 numba。编辑:错了,我实际上没有。我有一个 git repo 并安装了那个。当我尝试通过 pip 安装它时出现错误。 看起来错误来自同一个地方?你安装的时候测试了吗?python setup.py test
,我想?
numba 的 setup.py 不提供测试。不幸的是。
我在安装 spacy 时遇到了同样的错误
【参考方案1】:
试试:
pip install numba==0.48
看起来装饰器模块在以后的 numba 版本中被删除了。
【讨论】:
【参考方案2】:我遇到了同样的问题,我只是通过在我的代码中导入 quantecon 之前导入 pandas 来解决它:
import pandas as pd
import quantecon as qe
它对我有用。
【讨论】:
【参考方案3】:以下代码行解决了我的问题。
python -m pip install --user numba
这是为 ubuntu 准备的。
【讨论】:
对 MacOS 也有效【参考方案4】:在 Windows 上工作我添加了同样的问题 我安装Miniconda 执行
conda install numba
这会安装一个带有所有 numba 包的 python 解释器 然后我将此包复制到我的解释器的环境中
你已经完成了
【讨论】:
【参考方案5】:我希望你在 Linux 上并且你已经安装了 pip。 在我的 Debian Linux 上,我可以通过以下命令轻松安装 numba:
sudo apt-get install build-essential
sudo apt-get install llvm
pip install llvmpy
pip install cython
pip install numba
那么你就完成了!
【讨论】:
我收到以下错误:pip install llvmpy 使用缓存的 llvmpy-0.12.7.tar.gz 收集 llvmpy 命令 python setup.py egg_info 的完整输出:错误:无法调用 ['llvm-config', '--version'] 尝试设置 LLVM_CONFIG_PATH=/path/to/llvm-config 注意:我已经安装了 llvm【参考方案6】:我看到这个问题有点老了,但我会把我的经验放在这里,以防它帮助其他人在谷歌上搜索。对我来说最简单的解决方案是安装 Anaconda 发行版:https://store.continuum.io/ 请注意,有一个“非常免费”的通用版本,还有一个不错的学术版本……嗯,学术用途。 :)
Numba 实际上得到了 Continuum 人员的支持,至少根据他们的tutorials 之一。我已经安装了它,现在才开始玩这个东西。到目前为止,我很喜欢它(尽管在让它与我之前创建的一些 Cython 模块配合使用时遇到了一些小麻烦)。如果你走 Continuum 路线,他们有一个有点隐藏的blog,我发现它很有用(主页上的链接在“公司”下,这不是我第一个看的地方)。查看他们标记为“Numba”的东西;那里有例子。
我通过 Anaconda 使用 Numba 的另一个秘密原因:由于它们似乎相对较新,我推测它们可能非常“擅长”解决 Q 问题或让 Numba 在他们的发行版中为您工作的问题——想要构建一个好名字和好产品等等。当然,这只是我个人的猜测。
唯一的缺点:Anaconda 中没有包含 Picloud。我过去用过很多次,所以这很令人失望。这只是对我自己来说意味着更多的工作,但零工作很好:)
注意:我根本不隶属于 Continuum。到目前为止,我对他们的产品感到惊喜。
【讨论】:
【参考方案7】:我遇到了同样的问题,对我来说,解决方案是将 distribute 升级到 0.6.45。
【讨论】:
【参考方案8】:使用virtualenv 创建一个新的虚拟环境,并按照安装说明中给出的顺序在此环境中安装所有需要的组件。
【讨论】:
以上是关于为 python 安装 numba的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 2.7 让 python Numba 在 Ubuntu 14.10 或 Fedora 21 上工作