Я пытался установить "mkldnn" с помощью conda, но столкнулся с этой старой проблемой: "установленный conda, но python не может найти установленный модуль".Странная вещь после того, как я добавил путь к импорту python, он все еще не может найти его.
У вас случайно есть идея, почему?Вот методы, которые я пробовал, и результаты.
Шаг 1: Я попытался создать новую среду conda с Python3.6 и переустановить mkldnn
с conda.Все еще не могу найти.
[yl5090@log-0 ~]$ module purge
[yl5090@log-0 ~]$ module load anaconda3/5.3.0
[yl5090@log-0 ~]$ conda create --name pytorch-mpi python=3.6
Solving environment: done
## Package Plan ##
environment location: /home/yl5090/.conda/envs/pytorch-mpi
added / updated specs:
- python=3.6
The following NEW packages will be INSTALLED:
ca-certificates: 2018.03.07-0
certifi: 2018.11.29-py36_0
libedit: 3.1.20170329-h6b74fdf_2
libffi: 3.2.1-hd88cf55_4
libgcc-ng: 8.2.0-hdf63c60_1
libstdcxx-ng: 8.2.0-hdf63c60_1
ncurses: 6.1-he6710b0_1
openssl: 1.1.1a-h7b6447c_0
pip: 18.1-py36_0
python: 3.6.7-h0371630_0
readline: 7.0-h7b6447c_5
setuptools: 40.6.2-py36_0
sqlite: 3.25.3-h7b6447c_0
tk: 8.6.8-hbc83047_0
wheel: 0.32.3-py36_0
xz: 5.2.4-h14c3975_4
zlib: 1.2.11-h7b6447c_3
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate pytorch-mpi
#
# To deactivate an active environment, use:
# > source deactivate
#
[yl5090@log-0 ~]$ source activate pytorch-mpi
(pytorch-mpi) [yl5090@log-0 ~]$ conda install -c mingfeima mkldnn
Solving environment: done
## Package Plan ##
environment location: /home/yl5090/.conda/envs/pytorch-mpi
added / updated specs:
- mkldnn
The following NEW packages will be INSTALLED:
intel-openmp: 2019.1-144
mkl: 2019.1-144
mkldnn: 0.16.1-0 mingfeima
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(pytorch-mpi) [yl5090@log-0 ~]$ python
Python 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 19:16:44)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mkldnn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'mkldnn'
>>>
Шаг 2: Я проверил, нет ли пакета mkldnn
в sys.path
этого Python.
>>> import sys
>>> sys.path
['', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python36.zip', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/lib-dynload', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/site-packages']
[yl5090@log-1 lab4]$ cd /home/yl5090/.conda/envs/pytorch-mpi/lib
[yl5090@log-1 lib]$ pwd
/home/yl5090/.conda/envs/pytorch-mpi/lib
[yl5090@log-1 lib]$ find . -type d -name "*mkldnn*" -print
[yl5090@log-1 lib]$
Шаг 3: Я проверил путь импорта установленной conda numpy и не могу найти mkldnn
по этому пути.
>>> import numpy
>>> import inspect
>>> inspect.getfile(numpy)
'/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/site-packages/numpy/__init__.py'
[yl5090@log-1 lib]$ cd /home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/site-packages/
[yl5090@log-1 site-packages]$ ls
certifi pip
certifi-2018.11.29-py3.6.egg-info pip-18.1-py3.6.egg-info
easy_install.py pkg_resources
mkl_fft __pycache__
mkl_fft-1.0.6-py3.6.egg-info README.txt
mkl_random setuptools
mkl_random-1.0.2-py3.6.egg-info setuptools-40.6.2-py3.6.egg-info
numpy wheel
numpy-1.15.4-py3.6.egg-info wheel-0.32.3-py3.6.egg-info
Шаг 4: Я нашелустановил mkldnn в каталог /.conda/pkgs
и добавил его в путь импорта python.Но все еще не могу импортировать его из python.
[yl5090@log-1 pkgs]$ ls /home/yl5090/.conda/pkgs | grep mkldnn
mkldnn-0.16.1-0
[yl5090@log-1 pkgs]$ cd mkldnn*
[yl5090@log-1 mkldnn-0.16.1-0]$ ls
include info lib share
(load in python...)
>>> path = "/home/yl5090/.conda/pkgs"
>>> import sys
>>> sys.path.insert(0, path)
>>> sys.path
['/home/yl5090/.conda/pkgs', '', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python36.zip', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/lib-dynload', '/home/yl5090/.conda/envs/pytorch-mpi/lib/python3.6/site-packages']
>>> import mkldnn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'mkldnn'
Остается только одна причина, по которой я могу подумать: Python не может импортировать файлы .so
без файла __init__.py
, но я не уверен, правильно ли этонаправление идти по этому вопросу.
Наконец, вот что находится в каталоге mkldnn
, который я нашел, не уверен, что это именно то, что установил conda.
[yl5090@log-1 mkldnn-0.16.1-0]$ ls
include info lib share
Спасибо !!!