簡體   English   中英

VSCode 中的 Python/Jupyter 筆記本沒有使用正確的環境

[英]Python/Jupyter notebook in VSCode does not use the right environment

情況

我在 Windows 10 上使用 Anaconda 3。

我有一個 Visual Studio Code 工作區 ( my_workspace ),而不是一個 Jupyter 筆記本 ( my_notebook.ipynb )。 VSCode 安裝了 Python 擴展。

文件my_workspace/settings.json包含:

{
    "python.pythonPath": "C:\\Users\\Me\\Anaconda3\\envs\\my_env\\python.exe"
}

my_env是現有的 Anaconda 環境。 我可以激活它並在 shell 中使用它,如果我在這樣的 shell 中運行jupyter lab ,則筆記本中的代碼可以按預期導入my_env的包。

如果我在my_notebook.ipynb中打開my_workspace ,然后在選項卡中打開 my_notebook.ipynb,在my_env的狀態欄中也會提到 my_env(“Python 3.7.6 64-bit ('my_env': conda)”),並且打開時會自動激活my_env VSCode 控制台中的 PowerShell 提示符(我運行了一次 conda conda init )。

問題

當筆記本在 VSCode 中打開時,Jupyter kernel 似乎使用base環境的 Python 解釋器而不是my_env中的解釋器。 導入安裝在my_env中但未安裝在base中的 package 時,出現此錯誤:

>>> import keras
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'keras'

這發生在所有包上,而不僅僅是keras

在 VSCode 的筆記本選項卡中,如果我單擊右上角的解釋器名稱,然后選擇正確的解釋器( my_env中的解釋器),則筆記本在my_env中正確運行。 但是每次我重新打開 VSCode 時都必須這樣做。

如何使默認 kernel 尊重 settings.json 中選擇的settings.json

我認為現在沒有參數來控制settings.json 我在啟動筆記本的環境中遇到了類似的問題,我能夠通過修改 IPython 筆記本中的kernelspec部分來解決這個問題。

基本上,將筆記本作為 JSON 文件打開並刪除kernelspec部分。 當筆記本從 vscode 啟動時,該部分將填充工作區的默認 python 環境內核。 在我的情況下,充滿了 pipenv 環境。

就我而言,在創建新環境后,必須多次重新啟動 VS 代碼,然后才能找到新的環境。 看起來 VS Code 必須花一些時間才能在系統中找到新的 Env。

也許這有幫助,但也許沒有。 我在遠程機器上的 ssh session 期間遇到了這個問題。 我不得不使用 VS 代碼命令 > Python: Select 解釋器

> Python:選擇解釋器

在這里形成我需要將位置添加到我希望工作的環境中。

添加路徑

只要在路徑中安裝了 jupyter 就應該沒有問題(:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM