Python 识别Jupyter导入声明中缺少的DLL
只有在Jupyter中运行时,scikit learn才会抛出一个错误,表示它找不到DLL。这个问题有几个答案,没有一个对我有效,但在大多数情况下,解决方案是手动复制DLL。如何从堆栈跟踪中判断下面缺少哪个DLL 我使用Miniconda 3安装库,scikit learn在PyCharm IDE中可以完美地工作Python 识别Jupyter导入声明中缺少的DLL,python,scikit-learn,scipy,jupyter,Python,Scikit Learn,Scipy,Jupyter,只有在Jupyter中运行时,scikit learn才会抛出一个错误,表示它找不到DLL。这个问题有几个答案,没有一个对我有效,但在大多数情况下,解决方案是手动复制DLL。如何从堆栈跟踪中判断下面缺少哪个DLL 我使用Miniconda 3安装库,scikit learn在PyCharm IDE中可以完美地工作 from sklearn.ensemble import RandomForestClassifier --------------------------------------
from sklearn.ensemble import RandomForestClassifier
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-019d114f89a0> in <module>
----> 1 from sklearn.ensemble import RandomForestClassifier
~\Miniconda3\lib\site-packages\sklearn\__init__.py in <module>
74 else:
75 from . import __check_build
---> 76 from .base import clone
77 from .utils._show_versions import show_versions
78
~\Miniconda3\lib\site-packages\sklearn\base.py in <module>
14
15 from . import __version__
---> 16 from .utils import _IS_32BIT
17
18 _DEFAULT_TAGS = {
~\Miniconda3\lib\site-packages\sklearn\utils\__init__.py in <module>
18 from ..exceptions import DataConversionWarning
19 from .deprecation import deprecated
---> 20 from .validation import (as_float_array,
21 assert_all_finite,
22 check_random_state, column_or_1d, check_array,
~\Miniconda3\lib\site-packages\sklearn\utils\validation.py in <module>
19 from numpy.core.numeric import ComplexWarning
20
---> 21 from .fixes import _object_dtype_isnan
22 from .. import get_config as _get_config
23 from ..exceptions import NonBLASDotWarning
~\Miniconda3\lib\site-packages\sklearn\utils\fixes.py in <module>
16 import scipy.sparse as sp
17 import scipy
---> 18 from scipy.sparse.linalg import lsqr as sparse_lsqr # noqa
19
20
~\Miniconda3\lib\site-packages\scipy\sparse\linalg\__init__.py in <module>
114 from .dsolve import *
115 from .interface import *
--> 116 from .eigen import *
117 from .matfuncs import *
118 from ._onenormest import *
~\Miniconda3\lib\site-packages\scipy\sparse\linalg\eigen\__init__.py in <module>
9 from __future__ import division, print_function, absolute_import
10
---> 11 from .arpack import *
12 from .lobpcg import *
13
~\Miniconda3\lib\site-packages\scipy\sparse\linalg\eigen\arpack\__init__.py in <module>
20 from __future__ import division, print_function, absolute_import
21
---> 22 from .arpack import *
~\Miniconda3\lib\site-packages\scipy\sparse\linalg\eigen\arpack\arpack.py in <module>
43 __all__ = ['eigs', 'eigsh', 'svds', 'ArpackError', 'ArpackNoConvergence']
44
---> 45 from . import _arpack
46 import numpy as np
47 import warnings
ImportError: DLL load failed: The specified procedure could not be found.
来自sklearn.employ的
---------------------------------------------------------------------------
ImportError回溯(最近一次呼叫最后一次)
在里面
---->1来自sklearn.employ导入随机林分类器
~\Miniconda3\lib\site packages\sklearn\\uuuuuu init\uuuuuuuuuuuu.py in
74.其他:
75来自。导入检查生成
--->76从基本导入克隆
77从.utils.\u显示\u版本导入显示\u版本
78
中的~\Miniconda3\lib\site packages\sklearn\base.py
14
15从。导入版本__
--->16 from.utils导入为32位
17
18 \u默认\u标记={
~\Miniconda3\lib\site packages\sklearn\utils\\uuuuuu init\uuuuuuuuuu.py in
18从..异常导入数据转换警告
19.不推荐导入不推荐导入
--->20来自验证导入(作为浮点数组,
21断言所有有限,
22检查\u随机\u状态,列\u或\u 1d,检查\u数组,
中的~\Miniconda3\lib\site packages\sklearn\utils\validation.py
19来自numpy.core.numeric import ComplexWarning
20
--->21 from.fixes import\u object\u dtype\u isnan
22 from..import get\u config as\u get\u config
23从..异常导入非警告
中的~\Miniconda3\lib\site packages\sklearn\utils\fixes.py
16导入scipy.sparse作为sp
17进口西皮
--->18从scipy.sparse.linalg导入lsqr作为稀疏lsqr#noqa
19
20
中的~\Miniconda3\lib\site packages\scipy\sparse\linalg\\uuuuuu init\uuuuuuuu.py
114从dsolve导入*
115.接口导入*
-->116.本征输入*
117.从matfuncs导入*
118自。_ONERMOSTIMPORT*
中的~\Miniconda3\lib\site packages\scipy\sparse\linalg\eigen\\uuuuuuu init\uuuuuuuuu.py
9来自未来导入部门,打印功能,绝对导入
10
--->11.从arpack导入*
12.lobpcg导入*
13
中的~\Miniconda3\lib\site packages\scipy\sparse\linalg\eigen\arpack\\uuuuu init\uuuuu.py
20来自未来导入部门,打印功能,绝对导入
21
--->22.从arpack导入*
中的~\Miniconda3\lib\site packages\scipy\sparse\linalg\eigen\arpack\arpack.py
43 uuu all uuu=['EIG'、'eigsh'、'svds'、'ArpackError'、'ARPACKNOCONVERCENCE']
44
--->45.进口_arpack
46作为np的进口numpy
47进口警告
ImportError:DLL加载失败:找不到指定的过程。
关于堆栈跟踪,使用try-except块封装整个代码。下面的代码打印出脚本名称、错误代码行号和错误类型。str(e)允许深入跟踪堆栈
import os, sys
try:
# Place your code here
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print("Exception occurred while processing: {}, line {}, {}".format(fname, exc_tb.tb_lineno, exc_type))
print("Exception occurred: "+ str(e))
看起来scipy安装不完整。
arpack
引用了一个快速编译的数学库。这是一个(迷你版)conda
问题,不是一个jupyter
问题。是的,当我从scipy
导入时,我得到了同样的错误,不仅仅是从sklearn
得到的。我尝试了conda install scipy--强制重新安装
,但问题仍然存在。我还在Google上搜索了arpack DLL not
以查看是否可以从某个地方复制DLL,但我运气不佳。a有什么建议吗?看起来您正在将包安装到miniconda的基本环境中?请尝试创建一个新环境。conda create-n learn python scipy jupyter
,然后激活该环境并查看是否出现相同错误。conda activate learn
。在新环境中重新创建所有内容base2代码>而不是使用base
解决了这个问题。这就是我在Windows路径中的路径:C:\users\pgx\miniconda3\Library\bin;C:\users\pgx\miniconda3\envs\base2;C:\users\pgx\miniconda3\miniconda3;C:\users\pgsch\miniconda3\Scripts
。我有了第一个新环境base2
文件夹,然后是默认的miniconda文件夹,不确定这是否正确。我从sklearn.employ import random forestClassifier运行行,找到scipy\extra dll\lib_arpack-.3eacc44r6uryomhqmyvckqcom2qibwu.gfortran-win_amd64.dll
。