48719


＊ [teratailでも投稿](https://teratail.com/questions/148502)してはいますが解決できておりません。  
マルチポストとなり申し訳ないです。

  * 実現したいこと  
VScodeで、pythonインタープリタを追加したい。

    * 困っていること  
VScodeのユーザー設定で、python.pythonPath部分に、仮想環境上にあるpython環境のパスを記述しても、インタープリタを選択しようとした時に、選択肢として出てこない。

    * 該当ソースコード  
{ **"python.pythonPath":
"/Users/usernamexxx/xxx/.vagrant/venv/bin/python3.6"** }

    * 試したこと  
ターミナルから、仮想環境に入り、"Code"コマンドでVScodeを起動する方法も試したが、  
「コマンド'code'は見つかりませんでした」となった。  
VScodeで、PATHにCodeコマンドを追加した後もうまくいかず。。。

    * 動作環境  
PC: MacBookPro  
OS: High sierra  
VM: Virtual Box  
仮想環境：vagrant  
ゲストOS：ubuntu16.04  
Python3: 3.6.4

* * *

追記:  
実行しようとしていたのは、ゲスト上にインストールしたPythonです。  
ホスト上は `/Users/username/.pyenv/versions/3.6.4/bin/python`  
ゲスト上は `/home/vagrant/work/venv/bin/python` にそれぞれインストールし直しました。  
その後

[code]

    {"python.pythonPath": "/home/vagrant/work/venv/bin/python"}
    
[/code]

と記述したのですが、このpathでゲスト上の python ということは認識されるのでしょうか？

ホスト上の pythonから codeコマンドを実行すると、VScodeを起動できます。また、ゲスト上の pythonでも、hoge.py
を実行できました。


CC BY-SA 4.0
2018-09-25T17:05:39.510
48705
2018-09-26T08:29:46.873
2018-09-26T07:59:43.620
3054
30238
question
python python3 vagrant vscode
VSCodeで仮想マシン上のPythonを利用したい


どうも仮想マシンを利用していることで混乱があるようです。まず以下の点を確認しつつ作業すると解決に近付くかと思います。

  1. 実行しようとしている `/Users/usernamexxx/xxx/.vagrant/venv/bin/python3.6` はどういった物ですか？

    * Mac（ホスト）上でインストールしたPython：  
もしこれであれば、Vagrantで作った仮想環境とは関係無いことになります。  
動作環境はMac OSです。  
紛らわしいので、インストール先はVagrantディレクトリと関係無い場所に変えた方がよいです。

    * Linux（ゲスト）上でインストールしたPython：  
もしこれであれば、Linux（Vagrantで作った仮想マシン）で動かさないといけません。  
Mac側から直接には実行できません。  
Mac側のファイルとして存在しているのは、ゲストとの共有ディレクトリ（ゲストのLinux側では `/vagrant/`
以下にマウントされていると思います）にインストールしたからです。  
これも紛らわしいので、別の場所（ゲストの `/home/vagrant/` 以下など）にインストールした方がよいです。

  2. コマンドでは正しく実行できていますか？

    * コマンド（端末での操作）でもうまくいっていない場合は、まずそちらから解決が必要です。
    * コマンドではうまくいっている場合は、どのようなコマンドを入力して成功しているのか、ホスト側とゲスト側の区別に注意して質問に追記すると回答者が状況を理解しやすいです。

* * *

### 追記: 仮想マシン上のPythonをVSCodeで使いたい場合

仮想マシンで動作するLinux上のPythonをホストのMacが直接実行することはできません。  
（同じく、ホストのMacで動作するVSCodeをゲストのLinux上で実行することもできません）

これを解決するには、リモートデバッグと言われる仕組みを導入する方法があります。  
（参考: [「Pythonのリモートデバッグ (Visual Studio
Code編)」](https://qiita.com/kiakiraki/items/76251798e38eee242e11)
[「VisualStudioCodeでPythonコードのリモートデバッグ」](https://qiita.com/YukinoriManome/items/119cd490513a091e649e)）  
また、"Remote Interpreter" というものも[提案されている](https://github.com/Microsoft/vscode-
python/issues/79)ようで、これは未実装のようですが、自分の目的のみにフォーカスするなら似た物の作成は難しくないと思います。

他にもVSCodeに詳しい方が拡張機能などを教えて下さるかもしれませんが、そういった物が無ければ私としては、あきらめることをお勧めします。初心者が行うにはちょっと、ややこし過ぎる事な気がします。


CC BY-SA 4.0
2018-09-26T06:33:37.933
48719
2018-09-26T08:29:46.873
2018-09-26T08:29:46.873
3054
3054
48705
answer