web-dev-qa-db-ja.com

VS Code Code Runnerはvirtualenvsでは機能しません

Virtualenvで動作するコードランナー拡張を取得できません。 virtualenvにのみインストールされ、グローバルPythonインストールにインストールされていないライブラリをインポートするコードを実行しようとすると、インポートエラーが発生します。ターミナルでまったく同じコードを実行すると動作します。

私はWindows 10を使用しており、Python 3.6.5をインストールしています。

私が得ている正確なエラーは:

ModuleNotFoundError: No module named 'bs4'
16
slinden

私も同じ問題に直面しました。

enter image description here 私が最も見つけた解決策は、この行をユーザーまたはワークスペースの設定に追加することです(プロジェクトに適した方):

"code-runner.executorMap": {
    "python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
}

virtualenvパスを入力する必要があります。

"code-runner.executorMap": {"python":"$pythonPath $fullFileName"}

enter image description here

enter image description here

これがお役に立てば幸いです。

11
Adarsh

可能な解決策は、VSコード設定で"code-runner.runInTerminal": trueを設定することです。これはデフォルトではfalseです。そうすることで、コードランナーは、"terminal.integrated.Shell.windows"設定を使用して構成されたシェルでコードを実行します。

その後、コードランナーでスクリプトを実行します。これで新しいターミナルが開き、コードを実行する前に、VSコードのPython: Select Interpreterを使用して選択したpython環境が自動的にアクティブ化されます(環境が自動的にアクティブ化されない場合、これは手動でも実行できます。コードランナーによって開かれたターミナルセッションで実行してください)。

8
nkaenzig

this ビデオを見ると、Macユーザーであれば44.55分に解決策を見ることができます。

$pythonPathを定義する必要があります。ただし、$fullFineNameを定義する必要はありません。 Code Runnerがインストールされている場合は、すでに行われています

これをユーザー設定に追加します。

"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python"

"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}

2
Daniel Ayk

私はこれらの方法を使用します:

まず、次のようにexecuterMapを設定することをお勧めします。

  "code-runner.executorMap": {
   "python": "\"$pythonPath\" $fullFileName",
   },

これを設定すると、vscodeでpythonインタープリターのバージョンを変更するたびに、code-runnerは同じバージョンを使用してコードを実行します。

以前に使用した別の方法は次のとおりです。
次のような最初の行でシバンコードを使用します:

#! .\venv\scripts\python.exe

code-runnerはShebangコマンドと互換性があり、最初の行で言及したバージョンpythonでコードを実行します。

最後に、文章に文法的な誤りがあった場合はお詫び申し上げます。私は英語のネイティブスピーカーではありません。

1
ghassemi.ehsan

ファイルの先頭にvenvインタープリターの場所を指すShebang行を追加しました。

#!/Users/username/Desktop/venv/bin/python

コードランナーは問題なく動作するようです。

1
Andrzej

CodeRunnerをアクティブにしたところ、上記と同じ問題がすべて発生しました。

次に、pip install requestsに進みました。私の場合はvenvに存在していましたが、グローバルには存在していませんでしたが、すでに存在していて理論的には機能していたはずです。見よ、それは今うまく機能する。

テイクアウトは、venvの作成後にインストールした場合、CodeRunnerがミッドストリームを取得しないことです。

1
clickfrank

これをユーザーまたはワークスペースの設定に追加します

"code-runner.executorMap": {
        "python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
    },
"code-runner.runInTerminal": true
0
Max