web-dev-qa-db-ja.com

デバッガを起動する前にvscodeがCondaを有効にしないのはなぜですか?

Vscodeでデバッガを起動すると、「不足している依存関係がない」インポートエラーでデバッグプロセスが停止した後に、Conda環境はアクティブになります。すぐにデバッガを再起動するとうまく機能します。

この問題は、アナコンダ「ベース」やその他の環境で発生します。

テストコード:import_pandas.py

_    import pandas
    print("Pandas import succeeded!")
_

Vscode Pythonデバッグコンソール:

_Microsoft Windows [Version 10.0.16299.1146]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\peter\demo>cd c:\Users\peter\demo && 
    cmd /C "set "PYTHONIOENCODING=UTF-8" && 
    set "PYTHONUNBUFFERED=1" && 
    C:\Users\peter\AppData\Local\Anaconda3\python.exe 
        c:/Users/peter/.vscode/extensions/ms-python.python-2019.5.18678/pythonFiles/ptvsd_launcher.py 
            --default --client --Host localhost --port 49530 
c:\Users\peter\demo\import_pandas.py "

...

ImportError: Missing required dependencies ['numpy']

C:\Users\peter\demo>C:/Users/peter/AppData/Local/Anaconda3/Scripts/activate

(base) C:\Users\peter\demo>conda activate base

(base) C:\Users\peter\demo>
_

デバッガが停止した後にCondaが自動的にアクティブになります。

環境がアクティブになった後に、デバッグプロセスはもう失敗しません。

_(base) C:\Users\peter\demo>cd c:\Users\peter\demo && 
    cmd /C "set "PYTHONIOENCODING=UTF-8" && 
    set "PYTHONUNBUFFERED=1" && 
    C:\Users\peter\AppData\Local\Anaconda3\python.exe 
        c:/Users/peter/.vscode/extensions/ms-python.python-2019.5.18678/pythonFiles/ptvsd_launcher.py 
        --default --client --Host localhost --port 49544 
c:\Users\peter\demo\import_pandas.py "

Pandas import succeeded!
_

初めてデバッガを呼び出す前に、Condaがアクティブになった方法はありますか?

8
Peter

同じ問題がありました。

からの調達: https://github.com/formulahendry/vscode-code-runner/issues/395https://github.com/formulahendry/vscode-code-runner/issues/ve395

これをsettings.jsonに入れる:

"code-runner.executorMap": {
    "python": "$pythonPath -u $fullFileName",
}, 
"code-runner.runInTerminal": true,
 _

最初の実行の前に "Conda Activate ..."を入力しませんが、次のcode-runnerコマンドを置き換えます。

"python -u <file path>"
 _

に:

"<virtual environment path> -u <file path>"
 _

これは私の問題を修正しました

1
Blue Print

これはPythonデバッグで問題に合うようです。 My pythonスクリプトはベースConda環境で正常に機能します。しかし、Python拡張子を使用してデバッガを起動するとすぐに、デバッグコンソールのインポートDLLエラーの確認をすぐに開始しますが、デバッガはこのエラーには停止しません。スクリプトを実行せずに3秒以降のデバッガを閉じます。私はスクリプトの後半でブレークポイントを設定することさえでき、この行の後に停止しません。元の説明とは異なり、デバッガを再起動します。アンインストールを試してから、MS Python拡張機能を無効にすることを試みました。あなたが提供することができるすべての手がかりは素晴らしいでしょう、私はVSコードのProではありません。ありがとう。

更新:デバッガが正しく機能しています。プロジェクトワークスペースに配置されたWindows 10 Python仮想環境を作成しました。どうやらこれは後述のConda Envの起動遅延の周りに作用しますが、明らかにWindowsの仮想環境の場合はそうではありません。

1
Bill