在 Spyder 中使用包和环境
在啟動腳本時收到錯誤:“ModuleNotFoundError”
對于許多人來說,這似乎是一個常見問題,當通過“?pip?install module_xxx”導(dǎo)入本地機器上缺少 Python 模塊時,默認情況下它們不與Spyder鏈接。但是今天我提出了一個快速的技巧來處理這個問題,以獲得基本和快速的解決方案。(當您知道如何制作時總是很容易,對吧:) ?)
實際上,在Spyder的“Tool/PYTHONPATH manager”上設(shè)置本地機器通過pip下載和存儲已安裝模塊的路徑就足夠了,保存,關(guān)閉并重新啟動Spyder。
容易,不是嗎?:) 這里有一些截圖指導(dǎo):
雖然一旦您熟悉它就相對簡單,但 Spyder 與其他包和環(huán)境之間的交互有時會讓初次用戶感到困惑。Spyder 的改進使這個過程變得更加容易(而且還有更多!),但我們想澄清這種關(guān)系是如何運作的。
我們將首先幫助您調(diào)試 Python 中處理包和環(huán)境時遇到的常見問題,即即使您確定已安裝模塊也無法導(dǎo)入。接下來,我們將指導(dǎo)您設(shè)置 Spyder 環(huán)境以改進您的工作流程。如果您正在尋找一種在不同環(huán)境中使用 Spyder 的方法(例如一個用于簡單數(shù)據(jù)分析、一個用于機器學習、一個用于開發(fā)應(yīng)用程序等),您可以直接轉(zhuǎn)到最后一部分。
- 最常見的問題:在 Spyder 中使用新安裝的包
- 將軟件包安裝到與 Spyder 相同的環(huán)境中
- 使用其他環(huán)境和 Python 安裝
- 天真的方法
- 模塊化方法
最常見的問題:在 Spyder 中使用新安裝的包
在fooSpyder 之外安裝一個包(我們稱之為)后,用戶在嘗試將它導(dǎo)入到 IDE 中時可能會遇到錯誤:
在[ 1 ]:進口 FOO 回溯(最 近期的 通話 最后):文件 "<ipython-input-4-7f58dd7fb72e>",第 1行,在 < module > import fooModuleNotFoundError :沒有 名為“foo”的模塊發(fā)生這種情況是因為foo安裝(使用conda或pip)在與 Spyder 當前運行的環(huán)境不同的 conda 或 venv/virtualenv 環(huán)境中。
要確認這是問題所在,您需要:
激活環(huán)境(例如?myenv在其中安裝的包)foo(例如具有conda activate myenv供康達,source myenv/bin/activate或workon myenv為的virtualenv / VENV,等等)。
通過運行命令在那里啟動 Python 解釋器python。
在 Python 解釋器中運行以下命令:
導(dǎo)入 系統(tǒng);系統(tǒng)。可執(zhí)行文件啟動 Spyder 并在控制臺中運行與步驟 3 中顯示的相同的命令。
如果生成的路徑相同,則 Spyder 和包在同一環(huán)境中,import foo不應(yīng)產(chǎn)生錯誤(否則可能存在與您的安裝無關(guān)的問題)。
如果生成的路徑不同,那么您有三個選擇:
- 激活安裝 Spyder 的環(huán)境并在其上安裝您的軟件包(請參閱下一節(jié))。如果您嘗試在另一個環(huán)境(如myenv)中安裝未來的軟件包,您將獲得相同的ModuleNotFoundError.
- 將 Spyder 安裝到現(xiàn)有myenv環(huán)境或任何其他您想在其中工作的環(huán)境中,然后從那里運行它(請參閱以下部分)。這比第三個選項稍微簡單一些并且具有相同的效果,但是開銷更大并且靈活性較差。
- 只將spyder-kernels包安裝到myenv環(huán)境中,并在 Spyder 的首選項中設(shè)置 Python 解釋器路徑以指向myenvPython 可執(zhí)行文件(請參閱最后一節(jié)。這需要 Spyder >=3.3.0 和一個更多的初始步驟,但需要較少的維護長期運行并避免重復(fù)安裝 Spyder。
將軟件包安裝到與 Spyder 相同的環(huán)境中
Spyder 是一個 Python 包,就像您可能習慣的任何其他包一樣,因此您可以import在其控制臺或編輯器中使用任何包,就像在 Spyder 環(huán)境中啟動的常規(guī) Python 或 IPython 終端一樣:
- 如果 Spyder 與 Anaconda 一起安裝(我們推薦)并通過快捷方式從 Anaconda Navigator 或從 Anaconda Prompt 啟動而無需修改任何內(nèi)容,這將是默認的baseAnaconda 環(huán)境。
- 如果 Spyder 是通過pip(僅限專家)安裝而不是安裝到virtualenv/ 中venv,則這通常是 Python 安裝pip本身所屬的任何東西。
- 如果您使用系統(tǒng)包管理器(apt-get、dnf、emerge等)來安裝 Spyder,這通常是您的系統(tǒng) Python 及其包庫。
- 如果您將 Spyder 安裝到特定環(huán)境(conda-env或venv),或者它帶有預(yù)配置的環(huán)境(如 Keras 或 TensorFlow 的那些)并從那里啟動它,則它只能訪問來自該環(huán)境的包。
因此,如果您想在現(xiàn)有的 Spyder 安裝中使用包(例如,將其導(dǎo)入腳本、包或 Spyder IPython 控制臺),最簡單的方法是將包安裝到您所在的相同環(huán)境中。已安裝 Spyder,通常采用與安裝 Spyder 相同的方式(conda、pip、包管理器等)。但是,如果您使用pip、conda-forge、Github 或自定義渠道安裝軟件包、同時處理多個主要項目、使用預(yù)構(gòu)建的環(huán)境或有更復(fù)雜的需求,您可能希望使用一個或多個單獨的環(huán)境來滿足您的需求。包。如果是這樣,下一節(jié)將解釋如何操作。
使用其他環(huán)境和 Python 安裝
如果您有一個現(xiàn)有的預(yù)配置環(huán)境(例如 Keras 或 TensorFlow),正在管理多個環(huán)境(例如用于開發(fā)或測試目的),或者甚至想在完全獨立的 Python 安裝中工作,就像 Spyder安裝(例如系統(tǒng)安裝的 Spyder 與單獨的 Anaconda 安裝,反之亦然),您有兩個主要選擇:
天真的方法
要在另一個環(huán)境中使用 Spyder,最簡單的方法是將它直接安裝到您希望在其中使用軟件包的環(huán)境中,然后從那里運行它。這適用于所有 Spyder 版本,安裝 IDE 后不需要額外配置;然而,它導(dǎo)致需要管理多個安裝,并且不像替代方案那樣靈活或可配置。因此,在處理多種環(huán)境時,我們建議?采用模塊化方法。
模塊化方法
從 Spyder?3.3.1開始,您可以將模塊化spyder-kernels包安裝到您希望工作的任何 Python 環(huán)境(conda環(huán)境、virtualenv/venv系統(tǒng) Python、WinPython等)中,然后將 Spyder 在其 IPython 控制臺上使用的 Python 解釋器更改為指向到該環(huán)境的 Python 可執(zhí)行文件。
這需要少量的準備和配置,但比將 Spyder 完整安裝到該環(huán)境中要“輕得多”和更快,避免了依賴沖突,并開辟了新的工作流程可能性。
為此,請執(zhí)行以下步驟:
激活的環(huán)境(例如,?myenv在其中你想工作()如與conda activate myenv用于暢達,source myenv/bin/activate或workon myenv為的virtualenv / VENV,等等)
spyder-kernels使用以下命令在那里安裝軟件包:
-
conda install spyder-kernels?如果使用 conda/Anaconda,
-
pip install spyder-kernels?如果使用 pip/virtualenv。
通過任一方法安裝后,在同一環(huán)境中運行以下命令:
python - c “導(dǎo)入系統(tǒng);打印(sys.executable)”和復(fù)制由命令返回的路徑(它應(yīng)該結(jié)束python,pythonw,python.exe或者pythonw.exe,根據(jù)您的操作系統(tǒng)上)。
停用該環(huán)境,激活安裝了 Spyder 的環(huán)境(如果您已將其安裝在其自己的環(huán)境中),然后像往常一樣啟動 Spyder。
Spyder 啟動后,導(dǎo)航到Preferences > Python Interpreter > Use the following interpreter步驟 3 中的路徑并將其粘貼到文本框中。
啟動一個新的 IPython 控制臺。安裝在您myenv環(huán)境中的所有軟件包都應(yīng)該在那里可用。如果使用 conda,則當前環(huán)境的名稱及其 Python 版本應(yīng)顯示在 Spyder 的狀態(tài)欄中,將鼠標懸停在其上應(yīng)顯示所選解釋器的路徑。
筆記:
- 為了讓變量資源管理器能夠顯示特定數(shù)據(jù)類型(Numpy 數(shù)組、Pandas Series/DataFrame 等)的內(nèi)置編輯器,需要在 Spyder 的環(huán)境中安裝相應(yīng)的可選 Spyder 依賴項(Numpy、Pandas 等),不僅僅是 IPython 控制臺工作環(huán)境。此外,對象資源管理器中顯示的第三方包提供的自定義類目前也需要這樣做,盡管未來的 Spyder 版本可能會刪除后一個限制。
- 雖然沒有它 Spyder 應(yīng)該可以正常工作,但確保Spyder 環(huán)境中的 Python 次要版本(3.6、3.7、3.8等)與您的工作環(huán)境中的相匹配,如果可行,將最大限度地減少出現(xiàn)任何問題的可能性。
總結(jié)
以上是生活随笔為你收集整理的在 Spyder 中使用包和环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拧魔方问题-模拟法
- 下一篇: python做流程管理平台_[译] Ai