Import error: DLL load failed in Jupyter notebook but working in .py file
Import error: DLL load failed in Jupyter notebook but working in .py file
我在 Anaconda 环境中安装了 BreakoutDetection 模块。当我尝试在 jupyter notebook 中使用 import breakout_detection
导入模块时,出现以下错误
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-18-96c0fdb15b96> in <module>()
----> 1 import breakout_detection
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in <module>()
15 except ImportError:
16 return importlib.import_module('_breakout_detection')
---> 17 _breakout_detection = swig_import_helper()
18 del swig_import_helper
19 elif _swig_python_version_info >= (2, 6, 0):
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in swig_import_helper()
14 return importlib.import_module(mname)
15 except ImportError:
---> 16 return importlib.import_module('_breakout_detection')
17 _breakout_detection = swig_import_helper()
18 del swig_import_helper
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\importlib\__init__.pyc in import_module(name, package)
35 level += 1
36 name = _resolve_name(name[level:], package, level)
---> 37 __import__(name)
38 return sys.modules[name]
ImportError: DLL load failed: The specified procedure could not be found.
我可以在 python shell
中导入相同的模块
我查看了系统路径 (print sys.path
) 以及 python shell 和 jupyter notebook。他们都是一样的。两者的可执行路径 (print sys.executable
) 也相同。
有人可以帮我解决这个问题应该采取的步骤吗?谢谢!
导入sklearn时遇到了同样的问题。我想有些软件包需要升级。所以我只是 运行 (conda update --all) 升级了所有的包,终于成功了。
我遇到了同样的问题 运行 来自 PowerShell 的 Jupyter Notebook。尽管这个问题是一年前提出的,但我在这里回答是为了帮助那些最近遇到同样错误的人。在我的例子中,首先,我激活了根环境 activate base
然后我 运行 jupyter notebook
并且它工作得很好。一旦你激活了基地,你会注意到提示会变成这样:(base) X:\Users\xxxxx\current-directory-name>
。
注意命令activate base
在Powershell上不起作用。你必须切换到命令提示符 运行 cmd
或者你
可以在命令提示符下而不是 PowerShell 上尝试整个过程。
如需路径
(path:\to\Anaconda3\;path:\to\Anaconda3\Scripts;path:\to\Anaconda3\Library\mingw-w64\bin;path:\to\Anaconda3\Library\usr\bin;path:\to\Anaconda3\Library\bin
)
可用于您的 PowerShell 环境,那么您不需要
激活 "base" 环境。
在 windows 中,首先通过
在命令提示符中激活 root(base)
activate root
然后
jupyter notebook
如果您已经将 anaconda 添加到 PATH 变量中,那么您必须执行以下操作
activate base
jupyter kernelspec list
python -m ipykernel install --user
对我有用
我最近将 Anaconda 重新安装到一个新目录(从 D: 到 C:)。之后,打开并 运行ning PowerShell(在 Windows 10 中)导致它抛出相同的错误。
通过遵循@picklu 的回答,我能够运行 它暂时从CMD(通过运行宁'activate base'然后'jupyter notebook')。甚至 'activate root' 也可以代替激活基础。此外 运行 从 conda 提示符、anaconda 导航器和 Jupyter Notebook 的默认快捷方式运行它。但是,使用这些方法我无法从我打开 PowerShell window 的文件夹开始(通过使用 Ctrl+Shift+ mouseRightCLick)。
但是,按照@picklu 的回答的第二部分,我能够成功地将系统变量 PATH 从旧的 D: 驱动器更改为当前的 C:。
我添加了以下内容:
- c:\users\USERNAME\anaconda3
- c:\users\USERNAME\anaconda3\脚本
- c:\users\USERNAME\anaconda3\library\bin
- c:\users\USERNAME\anaconda3\library\usr\bin
其中 c:\users\USERNAME\anaconda3 是 anaconda 安装位置。
如果我们查看 Anaconda FAQ,我们会发现不建议将 Anaconda 添加到 Windows PATH。
虽然它应该可以工作,但手动管理所有需要的路径并不容易和直接。例如,在我撰写本文时,此处答案的 none 包含 Anaconda 在我的机器上添加的所有路径。我们可以使用 os 模块获取列表:
对于Python 2:
Python 2.7.15 |Anaconda, Inc.| (default, Feb 21 2019, 11:55:13) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.environ['PATH']
对于Python 3:
Python 3.7.2 (default, Feb 21 2019, 17:35:59) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.environ['PATH'])
在我的例子中,我有以下 Anaconda 路径:
C:\Anaconda;
C:\Anaconda\Library\mingw-w64\bin;
C:\Anaconda\Library\usr\bin;
C:\Anaconda\Library\bin;
C:\Anaconda\Scripts;
C:\Anaconda\bin;
C:\Anaconda\condabin;
而且这只是针对基础环境。如果您有其他环境,则每个环境都有相似的路径。您真的要全部添加、更新它们,并确保您没有遗漏任何新 Anaconda 版本发生的变化吗?
我怀疑。好消息是您不必这样做。当您激活环境时,所有路径都会自动为您配置。
可能只有将 Scripts
文件夹添加到 PATH 才有用,这样您就可以 运行 activate
没有完整路径。然后为 Python 解释器或 Jupyter Notebook 创建一堆 .bat/.cmd
文件可能会很方便,这将简化环境激活并允许您使用一个命令完成所有事情。
例如,我的机器上有两个 .cmd
文件用于 Python 2 和 Python 3 解释器:
python.cmd:
@echo off
call activate
python %*
python3.cmd:
@echo off
call activate python37
python %*
包含这些文件的文件夹被添加到 PATH,所以当我 运行 python
或 python3
命令时,相关的 conda 环境被激活并且 Python 解释器在适当的上下文中启动。如果您将 cmdline 参数传递给解释器,它们也会被正确转发。可以为 Jupyter 创建类似的脚本。
我卸载了所有 Microsoft Visual Studio C++ 可再发行组件后也遇到了这个问题。
我安装 Visual Studio 2015、2017 和 2019.
后修复了
上找到它
我尝试了上述所有解决方案,但在我安装最新版本 Microsoft Visual C++
之前对我不起作用。
我通过将文件 C:\Anaconda3\Libary\bin\sqlite3.dll 复制到 C:\Anaconda3\Dlls
解决了这个问题
无论在哪个虚拟环境中爆发,只需使用以下方式激活环境:
conda activate <env-name>
然后 re-install 笔记本使用:
pip install notebook
在我从 windows 10 升级到 windows 11 之前,它在 Base 和虚拟环境中都运行良好。
我在 Anaconda 环境中安装了 BreakoutDetection 模块。当我尝试在 jupyter notebook 中使用 import breakout_detection
导入模块时,出现以下错误
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-18-96c0fdb15b96> in <module>()
----> 1 import breakout_detection
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in <module>()
15 except ImportError:
16 return importlib.import_module('_breakout_detection')
---> 17 _breakout_detection = swig_import_helper()
18 del swig_import_helper
19 elif _swig_python_version_info >= (2, 6, 0):
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in swig_import_helper()
14 return importlib.import_module(mname)
15 except ImportError:
---> 16 return importlib.import_module('_breakout_detection')
17 _breakout_detection = swig_import_helper()
18 del swig_import_helper
C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\importlib\__init__.pyc in import_module(name, package)
35 level += 1
36 name = _resolve_name(name[level:], package, level)
---> 37 __import__(name)
38 return sys.modules[name]
ImportError: DLL load failed: The specified procedure could not be found.
我可以在 python shell
中导入相同的模块我查看了系统路径 (print sys.path
) 以及 python shell 和 jupyter notebook。他们都是一样的。两者的可执行路径 (print sys.executable
) 也相同。
有人可以帮我解决这个问题应该采取的步骤吗?谢谢!
导入sklearn时遇到了同样的问题。我想有些软件包需要升级。所以我只是 运行 (conda update --all) 升级了所有的包,终于成功了。
我遇到了同样的问题 运行 来自 PowerShell 的 Jupyter Notebook。尽管这个问题是一年前提出的,但我在这里回答是为了帮助那些最近遇到同样错误的人。在我的例子中,首先,我激活了根环境 activate base
然后我 运行 jupyter notebook
并且它工作得很好。一旦你激活了基地,你会注意到提示会变成这样:(base) X:\Users\xxxxx\current-directory-name>
。
注意命令
activate base
在Powershell上不起作用。你必须切换到命令提示符 运行cmd
或者你 可以在命令提示符下而不是 PowerShell 上尝试整个过程。如需路径
(path:\to\Anaconda3\;path:\to\Anaconda3\Scripts;path:\to\Anaconda3\Library\mingw-w64\bin;path:\to\Anaconda3\Library\usr\bin;path:\to\Anaconda3\Library\bin
) 可用于您的 PowerShell 环境,那么您不需要 激活 "base" 环境。
在 windows 中,首先通过
在命令提示符中激活 root(base)activate root
然后
jupyter notebook
如果您已经将 anaconda 添加到 PATH 变量中,那么您必须执行以下操作
activate base
jupyter kernelspec list
python -m ipykernel install --user
对我有用
我最近将 Anaconda 重新安装到一个新目录(从 D: 到 C:)。之后,打开并 运行ning PowerShell(在 Windows 10 中)导致它抛出相同的错误。
通过遵循@picklu 的回答,我能够运行 它暂时从CMD(通过运行宁'activate base'然后'jupyter notebook')。甚至 'activate root' 也可以代替激活基础。此外 运行 从 conda 提示符、anaconda 导航器和 Jupyter Notebook 的默认快捷方式运行它。但是,使用这些方法我无法从我打开 PowerShell window 的文件夹开始(通过使用 Ctrl+Shift+ mouseRightCLick)。
但是,按照@picklu 的回答的第二部分,我能够成功地将系统变量 PATH 从旧的 D: 驱动器更改为当前的 C:。
我添加了以下内容:
- c:\users\USERNAME\anaconda3
- c:\users\USERNAME\anaconda3\脚本
- c:\users\USERNAME\anaconda3\library\bin
- c:\users\USERNAME\anaconda3\library\usr\bin
其中 c:\users\USERNAME\anaconda3 是 anaconda 安装位置。
如果我们查看 Anaconda FAQ,我们会发现不建议将 Anaconda 添加到 Windows PATH。
虽然它应该可以工作,但手动管理所有需要的路径并不容易和直接。例如,在我撰写本文时,此处答案的 none 包含 Anaconda 在我的机器上添加的所有路径。我们可以使用 os 模块获取列表:
对于Python 2:
Python 2.7.15 |Anaconda, Inc.| (default, Feb 21 2019, 11:55:13) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.environ['PATH']
对于Python 3:
Python 3.7.2 (default, Feb 21 2019, 17:35:59) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.environ['PATH'])
在我的例子中,我有以下 Anaconda 路径:
C:\Anaconda;
C:\Anaconda\Library\mingw-w64\bin;
C:\Anaconda\Library\usr\bin;
C:\Anaconda\Library\bin;
C:\Anaconda\Scripts;
C:\Anaconda\bin;
C:\Anaconda\condabin;
而且这只是针对基础环境。如果您有其他环境,则每个环境都有相似的路径。您真的要全部添加、更新它们,并确保您没有遗漏任何新 Anaconda 版本发生的变化吗?
我怀疑。好消息是您不必这样做。当您激活环境时,所有路径都会自动为您配置。
可能只有将 Scripts
文件夹添加到 PATH 才有用,这样您就可以 运行 activate
没有完整路径。然后为 Python 解释器或 Jupyter Notebook 创建一堆 .bat/.cmd
文件可能会很方便,这将简化环境激活并允许您使用一个命令完成所有事情。
例如,我的机器上有两个 .cmd
文件用于 Python 2 和 Python 3 解释器:
python.cmd:
@echo off
call activate
python %*
python3.cmd:
@echo off
call activate python37
python %*
包含这些文件的文件夹被添加到 PATH,所以当我 运行 python
或 python3
命令时,相关的 conda 环境被激活并且 Python 解释器在适当的上下文中启动。如果您将 cmdline 参数传递给解释器,它们也会被正确转发。可以为 Jupyter 创建类似的脚本。
我卸载了所有 Microsoft Visual Studio C++ 可再发行组件后也遇到了这个问题。 我安装 Visual Studio 2015、2017 和 2019.
后修复了 上找到它我尝试了上述所有解决方案,但在我安装最新版本 Microsoft Visual C++
之前对我不起作用。
我通过将文件 C:\Anaconda3\Libary\bin\sqlite3.dll 复制到 C:\Anaconda3\Dlls
解决了这个问题无论在哪个虚拟环境中爆发,只需使用以下方式激活环境:
conda activate <env-name>
然后 re-install 笔记本使用:
pip install notebook
在我从 windows 10 升级到 windows 11 之前,它在 Base 和虚拟环境中都运行良好。