簡體   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