pip 未在 conda 环境中正确安装 numba/llvmlite

2024-01-29

我创建了一个新的 conda 环境

user@machine:~/project$ conda create -n test-env -c numba python=3.5.2 llvmdev=3.8
Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment /home/user/anaconda2/envs/test-env:

The following NEW packages will be INSTALLED:

    llvmdev:    3.8.1-7       numba
    openssl:    1.0.2k-0           
    pip:        9.0.1-py35_1       
    python:     3.5.2-0            
    readline:   6.2-2              
    setuptools: 27.2.0-py35_0      
    sqlite:     3.13.0-0           
    system:     5.8-2         numba
    tk:         8.5.18-0           
    wheel:      0.29.0-py35_0      
    xz:         5.2.2-1            
    zlib:       1.2.8-3            

Proceed ([y]/n)? y

#
# To activate this environment, use:
# > source activate test-env
#
# To deactivate this environment, use:
# > source deactivate test-env
#

然后激活它并尝试专门使用 pip (不是 conda)来安装 llvmlite 和 numba,这似乎成功了。 (注:我也尝试过--no-cache-dir并且它不会改变任何东西。)

user@machine:~/project$ source activate test-env
(test-env) user@machine:~/project$ pip install llvmlite==0.15 numba==0.30.1
Collecting llvmlite==0.15
Collecting numba==0.30.1
Collecting numpy (from numba==0.30.1)
  Using cached numpy-1.12.0-cp35-cp35m-manylinux1_x86_64.whl
Installing collected packages: llvmlite, numpy, numba
Successfully installed llvmlite-0.15.0 numba-0.30.1 numpy-1.12.0

但库没有正确安装,

(test-env) user@machine:~/project$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numba
Traceback (most recent call last):
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/llvmlite/binding/ffi.py", line 42, in <module>
    lib = ctypes.CDLL(os.path.join(_lib_dir, _lib_name))
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/ctypes/__init__.py", line 347, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/llvmlite/binding/libllvmlite.so: undefined symbol: _ZNKSt14error_category23default_error_conditionEi

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/numba/__init__.py", line 9, in <module>
    from . import config, errors, runtests, types
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/numba/config.py", line 11, in <module>
    import llvmlite.binding as ll
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/llvmlite/binding/__init__.py", line 6, in <module>
    from .dylib import *
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/llvmlite/binding/dylib.py", line 4, in <module>
    from . import ffi
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/site-packages/llvmlite/binding/ffi.py", line 47, in <module>
    lib = ctypes.CDLL(_lib_name)
  File "/home/user/anaconda2/envs/test-env/lib/python3.5/ctypes/__init__.py", line 347, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libllvmlite.so: cannot open shared object file: No such file or directory

为什么conda安装llvmdev来自 numba 通道的无法“正常工作”。

在我的用例中,我将进入一个具有 pip 样式的 requests.txt 文件的项目,并且我需要从该文件创建 conda 环境。有些项目开发者会使用venv+pip,有些会使用conda,而它包含的一些包在任何anaconda渠道中都找不到,所以必须安装pip。除了requirements.txt之外,我们不想维护单独的envrionment.yaml,因此从conda环境中的requirements.txt安装是我的约束的一部分。

一切似乎都正常,除了 numba/llvmlite 的 pip 安装,它需要 llvm 3.8+ 的系统依赖性。不过,我想作为 conda 环境的一部分来满足这一点。

如何确保 conda 环境中存在用于安装 numba 和 llvmlite 的正确 llvmdev?


安装 llvmdev: 从 conda-forge 频道安装 llvmdev 可以通过将 conda-forge 添加到您的频道来实现:

conda config --add channels conda-forge

一旦conda-forge通道已启用,llvmdev可以安装:

conda install llvmdev

可以使用以下命令列出您平台上可用的所有 llvmdev 版本:

conda search llvmdev --channel conda-forge

帮助:我从他们的 GitHub 源克隆了相关文件并执行了

 python setup.py install 

在没有 conda 的情况下使用 pip 获取更多信息

 sudo pip install -U llvmlite
 sudo pip install -U numba
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pip 未在 conda 环境中正确安装 numba/llvmlite 的相关文章

随机推荐