繁体   English   中英

将 Anaconda 与 Python 启动器一起使用时出现导入错误

[英]Import Error when using Anaconda with Python launcher

我安装了 Anaconda(Anaconda3-2020.07-Windows-x86_64,python 3.8)。 按照安装指南,我没有将 Anaconda 添加到 PATH 环境变量中。 安装后,使用Anaconda Prompt启动python时效果很好。

当我使用 Python Launcher 从 CMD 启动 python 时出现问题:

在 CMD 中,输入“py”启动 python(Python Launcher 能够找到 Anaconda python)。 然后,当我尝试导入numpy ,出现以下错误:

Original error was: DLL load failed: The specified module could not be found.

当我尝试导入sqlite3 ,出现以下错误:

ImportError: DLL load failed while importing _sqlite3: %1 is not a valid Win32 application

如果我使用 Anaconda Prompt 启动 python,我可以成功导入numpysqlite3 我在这两种情况下检查了sys.path ,它们完全相同。

为什么? 这两种情况有什么区别?

ps

我很担心这个问题,因为我使用“django + mod_wsgi + Apache”构建了一个网站,当从 brwoser 访问该网站时,该网站出现“内部服务器错误”。 错误日志显示是导入numpy和sqlite3失败导致的,和上面的错误一样。

这两种情况有什么区别?

anaconda 命令提示符为 PATH 环境变量添加了一堆路径,例如对我来说,它添加了所有这些位置:

C:\ProgramData\Miniconda3
C:\ProgramData\Miniconda3\Library\mingw-w64\bin
C:\ProgramData\Miniconda3\Library\usr\bin
C:\ProgramData\Miniconda3\Library\bin
C:\ProgramData\Miniconda3\Scripts
C:\ProgramData\Miniconda3\bin
C:\ProgramData\Miniconda3\condabin

在其中一些位置有像python.exe这样的可执行文件,因此调用python将启动 anaconda 安装版本。 此列表中的其他文件夹包含 .dll 文件,即您的模块可能依赖的库(如 numpy 或 sqlite,它们是用 c/c++ 编写的函数的接口)。 因此,即使您正在调用正确的 python.exe,如果 PATH 未设置为包含必要 dll 的位置,则导入此类包将失败,如您在错误消息中所见:

Original error was: DLL load failed: The specified module could not be found.

你可以做什么:

我不是配置 django 服务器的专家,但通过手动将这些位置添加到您的 PATH,您可能能够解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM