80884


venvで仮想環境を構築し、デバッグ（F5）したいのですが、ブレイクポイントで停止せず、無視されます。  
デバッグなし実行になっているのだと推測しています。

環境：  
OS：Window10Pro  
VScode：1.59.0  
Python:3.9.6

CTRL+SHIFT+Pからインタプリタ選択を表示させると、仮想環境内のPythonインタプリタが選択肢に出てきません。表示更新しても出ません。  
仕方なく、Path選択から./Scriptsフォルダ下にあるpython.exeを指定しました。

デバッガが機能するようにするにはどうすればよいでしょうか？  
以前はインタプリタ選択にENV環境のPythonが選択できたのですが。  
<追記>  
どうやら、このリンク内容が関係していそうです。  
[Python拡張機能の変更：AB Experiments](https://github.com/microsoft/vscode-
python/wiki/AB-Experiments)

下記の画像のときに、現在の仮想環境上のPythonが選択できたと記憶しています。  
右上の更新ボタンを押しても変化がありません。

[![インタープリターの選択](https://i.stack.imgur.com/EPazW.png)](https://i.stack.imgur.com/EPazW.png)

setting.jsonやlaunch.jsonにpythonPathを相対パスで記述しました。  
実行はできるのですが、デバッガは機能しません。  
以下にjsonファイルを示します。

setting.json

[code]

    {
        "files.eol": "\n",
        "terminal.integrated.env.windows": {
            "PATH": "${workspaceRoot}\\Scripts;${env:PATH}"
        },
        "python.pythonPath": "${workspaceRoot}\\Scripts\\pyton.exe"
    }
    
[/code]

launch.json

[code]

    {
        // IntelliSense を使用して利用可能な属性を学べます。
        // 既存の属性の説明をホバーして表示します。
        // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Current File",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "pythonPath": "${workspaceFolder}\\Scripts\\python.exe",
                "cwd": "${fileDirname}",
            }
        ]
    }
    
[/code]


CC BY-SA 4.0
2021-08-17T08:59:17.453
80870
2021-08-20T02:08:22.683
2021-08-20T02:08:22.683
47127
32891
question
python3 vscode debugging python-venv
VScodeでpython venv仮想環境のデバッガを機能させる方法


ところどころ 手元の環境と違うけれど, 問題の箇所が不明なので  
とりあえず, こちらの環境の構築手順を示します

(追記)  
一般的にはプロジェクトフォルダー(workspace)に移動し, venv 環境を作成するので  
venv 環境をプロジェクトディレクトリーに同一化しているのが問題と思われます

最後の方に, まとめを追記しました

参考: <https://stackoverflow.com/questions/54106071/how-can-i-set-up-a-virtual-
environment-for-python-in-visual-studio-code>

* * *

### 環境

[code]

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 21.04
    Release:    21.04
    Codename:   hirsute
    
[/code]

Anaconda3 インストール済み

[code]

    $ conda --version
    conda 4.10.3
    
[/code]

* * *

### 準備

※ (コメントによると conda 環境は削除したとのことだが, 質問時のインタープリター選択画面によると, conda 環境は少なくとも VS
Codeから認識されているので, Anaconda関係の情報として, 残しておく)

Anacondaは, 独自にパッケージ管理するので, pip など混ぜると破壊の恐れあり  
仮想環境も独自に持っているので, (問題を避けるため) deactivate を行っておく

[code]

    $ conda deactivate
    
    # (手元の環境では) venv 使っていないのでインストール
    # (インストール手順による動作の違いの可能性も考え 記しておく)
    $ apt list python*venv*
    python3-venv/hirsute,now 3.9.4-1 amd64
    python3-venv/hirsute 3.9.4-1 i386
    python3.10-venv/hirsute-updates,hirsute-security 3.10.0~b1-3~21.04 amd64
    python3.10-venv/hirsute-updates,hirsute-security 3.10.0~b1-3~21.04 i386
    python3.9-venv/hirsute-updates,hirsute-security,now 3.9.5-3~21.04 amd64
    python3.9-venv/hirsute-updates,hirsute-security 3.9.5-3~21.04 i386
    
    $ sudo apt install python3-venv
    
[/code]

Python 環境を再確認 (OS側 (Anacondaではない)ことを確認)

[code]

    $ python --version
    Python 3.9.5
    $ python
    Python 3.9.5 (default, May 11 2021, 08:20:37) 
    [GCC 10.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    
[/code]

仮想環境作成

[code]

    $ cd ~/ws   # ワークスペース
    $ python -m venv testvenv
    
[/code]

* * *

### 動作確認

ワークスペース内の Pythonソースを VS Codeで開く

左下の "Python 〜" をクリックし「インタープリターを選択」のダイアログを出す

  1. "Select the workspace to set the interpreter" … で workspaceを選択
  2. `'testenv': venv ` の項目(作成した venv環境)があるので選択

元の通常画面に戻るので  
`F5` でデバッグ実行

* * *

### ※ 追記

venv で作成した環境を workspace として登録し 扱うと, インタープリター選択の中に項目が出てこない模様  
(何とかインタープリターを選択しても, activate が行われていない)

(他に何らかの手段があるかも知れないけれど)  
venv での環境を認識させるには

  * workspace を用意
  * その下に, `python -m venv [venv環境名]` で作成

という手順を踏むのがよいでしょう

(pythonモジュール作成中の場合であっても, workspace でパス指定してるはずなので, venv で合わせて指定する必要もなさそう)

* * *

### さらに追記

うまく伝わっていないようなので, 少しまとめ

質問は「VS Codeで, venv の仮想環境を認識させ, プログラムのデバッグを可能に」

回答としては

  * プロジェクトディレクトリー(workspace) 直下に, ENV_DIR を作成してください … というもの

参考: (docs.python.org) [venv ---
仮想環境の作成](https://docs.python.org/ja/3/library/venv.html)

>
[code]

>     ENV_DIR               A directory to create the environment in.
>  
[/code]

現状のプロジェクトディレクトリー(workspace) に手を加えるのを控えたいなら

  1. どこか適当にディレクトリーを作成し workspace にして下さい
  2. 次に, その直下に venv 環境のディレクトリーを作成。名前は `venv` でも, `.venv` でも適当に
  3. 適当な python ソースをプロジェクトディレクトリー(workspace) 配下に置き
  4. VS Code で当該 workspaceを開き, 先程のソースファイルを開いて下さい
  5. 左下の "Python 〜" をクリックしインタープリターを選択してみて下さい

ENV_DIR を workspace として扱い, 認識させたい, という場合は, 別の質問として出すと良いでしょう

* * *

(ここから先は, 先の手順の結果によって, 追加予定だった部分)

コメントによると conda は削除したとのこと。  
しかしインタープリター選択画面のスクリーンショットには condaが存在している。  
もしも Anacondaを削除した後にもインタープリター選択画面に出ているようならば, 環境が壊れている可能性が考えられ,
それが悪影響を及ぼしてる可能性も考えられます  
(よく聞くトラブル)

その場合は, 別の質問として出してみるのもいいかも知れません


CC BY-SA 4.0
2021-08-18T03:33:17.547
80884
2021-08-19T13:18:06.200
2021-08-19T13:18:06.200
43025
43025
80870
answer