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



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

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

在CMD中,键入";py";启动python(python启动器能够找到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,它们完全相同。

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

p.s.

我关心这个问题,因为我用";django+mod_wsgi+Apache";,当从brwoser访问该网站时,该网站得到了一个";内部服务器错误";。错误日志显示,它是由导入numpy和sqlite3失败引起的,就像上面的错误一样。

这两种情况有什么区别?

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

C:ProgramDataMiniconda3
C:ProgramDataMiniconda3Librarymingw-w64bin
C:ProgramDataMiniconda3Libraryusrbin
C:ProgramDataMiniconda3Librarybin
C:ProgramDataMiniconda3Scripts
C:ProgramDataMiniconda3bin
C:ProgramDataMiniconda3condabin

在其中一些位置,有类似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中,您可能能够解决这个问题。

相关内容

最新更新