Virtualenvで動作するコードランナー拡張を取得できません。 virtualenvにのみインストールされ、グローバルPythonインストールにインストールされていないライブラリをインポートするコードを実行しようとすると、インポートエラーが発生します。ターミナルでまったく同じコードを実行すると動作します。
私はWindows 10を使用しており、Python 3.6.5をインストールしています。
私が得ている正確なエラーは:
ModuleNotFoundError: No module named 'bs4'
可能な解決策は、VSコード設定で"code-runner.runInTerminal": true
を設定することです。これはデフォルトではfalseです。そうすることで、コードランナーは、"terminal.integrated.Shell.windows"
設定を使用して構成されたシェルでコードを実行します。
その後、コードランナーでスクリプトを実行します。これで新しいターミナルが開き、コードを実行する前に、VSコードのPython: Select Interpreter
を使用して選択したpython環境が自動的にアクティブ化されます(環境が自動的にアクティブ化されない場合、これは手動でも実行できます。コードランナーによって開かれたターミナルセッションで実行してください)。
this ビデオを見ると、Macユーザーであれば44.55分に解決策を見ることができます。
$pythonPath
を定義する必要があります。ただし、$fullFineName
を定義する必要はありません。 Code Runnerがインストールされている場合は、すでに行われています
これをユーザー設定に追加します。
"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python"
、
"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}
まず、次のようにexecuterMapを設定することをお勧めします。
"code-runner.executorMap": {
"python": "\"$pythonPath\" $fullFileName",
},
これを設定すると、vscodeでpythonインタープリターのバージョンを変更するたびに、code-runnerは同じバージョンを使用してコードを実行します。
以前に使用した別の方法は次のとおりです。
次のような最初の行でシバンコードを使用します:
#! .\venv\scripts\python.exe
code-runnerはShebangコマンドと互換性があり、最初の行で言及したバージョンpythonでコードを実行します。
最後に、文章に文法的な誤りがあった場合はお詫び申し上げます。私は英語のネイティブスピーカーではありません。
ファイルの先頭にvenvインタープリターの場所を指すShebang行を追加しました。
#!/Users/username/Desktop/venv/bin/python
コードランナーは問題なく動作するようです。
CodeRunnerをアクティブにしたところ、上記と同じ問題がすべて発生しました。
次に、pip install requests
に進みました。私の場合はvenvに存在していましたが、グローバルには存在していませんでしたが、すでに存在していて理論的には機能していたはずです。見よ、それは今うまく機能する。
テイクアウトは、venvの作成後にインストールした場合、CodeRunnerがミッドストリームを取得しないことです。
これをユーザーまたはワークスペースの設定に追加します
"code-runner.executorMap": {
"python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
},
"code-runner.runInTerminal": true