создать новую Конду средупипа не устанавливая Numba/llvmlite надлежащим образом в Конде среды
[email protected]:~/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
#
, а затем активировать его и попытаться использовать специально пип (не Конду), чтобы установить llvmlite и Numba, который появляется, чтобы добиться успеха , (Примечание:. Я пробовал также --no-cache-dir
и это ничего не меняет)
[email protected]:~/project$ source activate test-env
(test-env) [email protected]:~/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) [email protected]:~/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
Почему установка Конда из llvmdev
от Numba каналу не удается «просто работать».
В моем случае использования я прихожу к проекту, в котором содержится файл требований .txt, и мне нужно создать среды conda из этого файла. Некоторые разработчики проекта будут использовать venv + pip, некоторые будут использовать conda, а некоторые пакеты, которые он содержит, не найдены ни в каких каналах anaconda, поэтому установка pip обязательна. Мы не хотим поддерживать отдельный envrionment.yaml в дополнение к требованию.txt, поэтому установка из требования. Txt внутри conda envrionment является частью моих ограничений.
Все кажется ОК, за исключением установки pipba numba/llvmlite, которая ожидает системную зависимость от llvm 3.8+. Однако я хочу удовлетворить это как часть среды конды.
Как я могу обеспечить из среды conda только то, что существует правильный llvmdev для установки numba и llvmlite?
Я не могу воспроизвести вашу ошибку на виртуальной машине Ubuntu, но вы можете попытаться вытащить ее из конвейерного канала el вместо канала numba dev и посмотреть, поможет ли это. – JoshAdel
Я могу воспроизвести его локально на машине Ubuntu 16.10, а также на удаленной машине Centos7. Еще не пробовал других. – ely
Какую версию conda вы используете? «conda config -a» вы вытаскиваете из каналов с открытым исходным кодом или какого-то внутреннего зеркала? – Kelvin