[英]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,我可以成功導入numpy
和sqlite3
。 我在這兩種情況下檢查了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.