質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

3回答

4150閲覧

実行にインタープリターが必要な理由

ruuuu

総合スコア167

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/11 04:22

編集2022/01/12 10:55

vscodeにてDjangoを実行させる際に、インタープリターを選択する理由が分かりません。
インタープリターを選択せずとも、ターミナルから、「python manage.py runserver」とすれば、実行が可能です。
何故、インタープリターを選択する必要があるのでしょうか?
どなたか、お詳しい方がいらっしゃいましたら教えていただけましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Pythonで書いたプログラムを実行させるのに必要だからです。
もしかして、自分で書いたプログラム(例えば、hoge.pyとしましょう)を実行する際、コンピュータがそのまま実行してると考えていますか?インタープリター型のプログラム言語(Pythonはそうです)はユーザーが書いたプログラムを実行する場合は、必ずインタープリターが必要となります。インタープリターがプログラムを読み、それを逐一コンピュータが実行できる形に翻訳してくれるからです。vscode自体はプログラムファイルとインタープリターの組み合わせを自動的に解決することはありません。そのために、選択する必要があります。
それと、

インタープリターを選択せずとも、ターミナルから、「python manage.py runserver」とすれば、実行が可能です。

と書いていますが、知らず知らずの内にインタープリターを指定していますよ。
(まあ、当然、指定しているから動くんですけど)

投稿2020/01/11 04:36

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Q71

2020/01/11 04:54

知らず知らずというか、実行しているpython.exeがPythonのインタープリタであるという事を知らないのでしょうね。
archiver

2020/01/11 05:04

まあ、そうでしょうね。 インタープリターの言葉の意味すら知らないかもしれませんね。
ruuuu

2020/01/11 07:24 編集

>vscode自体はプログラムファイルとインタープリターの組み合わせを自動的に解決することはありません こちらなのですが、vscodeにてターミナルを立ち上げ、「python manage.py runserver」とした場合、インタープリターを指定せずとも、実行が可能です。ですが、デバッグの際には、何故、インタープリターを指定しなければならないのかと、そこが疑問な点なのですよね... デバッグをする際も、実際に行なっていることは「manage.py runserver」な訳ですし... 公式ページにも、インタープリターを指定する記載があった為、何故なのかなと...
Q71

2020/01/11 13:42

Pythonにはvertulenvなどの環境を変えることができるツールがあります。VSCodeでは、インタープリタというより、環境を指定します。
guest

0

通常pythonというコマンドがインタプリタの実行ファイルになります。

コマンドとして実行した場合、環境上で普通にPATH探索されて実行ファイルが選ばれるので、複数のPythonがインストールされている環境で望みのPythonを選べる保証はありません。

投稿2020/01/11 04:34

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

  • IDEがインタプリタの場所を知っている必要がある
  • 開発手法として、呼び出されるインタプリタが指定できたほうが便利である。

ことから、インタプリタを指定するようになっています

VSCodeや他のIDEには、作成中のプログラムをデバッグする機能が付いています。pデバッグするためにはインタプリタを呼び出す必要があり、インタプリタがどこにあるのかVSCodeやIDEが知っている必要があるということになります。

開発環境の実行中のパスにpythonとうコマンドがあればそれを自動的ん使うということにしてしまえば、手間が省けると思われるかもしれませんが、通常の開発では、開発環境と本番環境が異なっていたり、複数のバージョンに対応しているかどうか確認する必要があるなど、インタプリタが固定されてしまうと困ることになります。
また、venvなどの仮想環境を使うことで、インタプリタだけでなく、インストールされているモジュールも差し替えたりするなどもできるようになります。

ということで、開発環境としては、インタプリタ(仮想環境)が指定できたほうが利便性が高いからということです。

投稿2020/01/11 14:22

TakaiY

総合スコア12666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/01/12 00:05

ご回答ありがとうございます。 未だ自分の知識が浅く全てを理解することは出来なかったのですが、大変分かりやすいご説明で、大方ですが、理解することが出来ました。
ruuuu

2020/01/12 00:10

すみません。重ね重ね申し訳ないのですが、一点だけどうしても教えて頂きたいことがございます。 >インタプリタがどこにあるのかVSCodeやIDEが知っている必要があるということになります。 こちらなのですが、デバッグする際以外は、「python manage.py runserver」コマンドでインタプリンタを指定せずとも実行することが可能であります。 しかしながら、デバッグする際には、何故インタプリンタの指定が必要なのかと、そこの部分が疑問になっている部分ではございます...
TakaiY

2020/01/12 13:38

「vscode python debug」などで検索すると出てきますが、vscodeでは、pythonのデバッグをサポートしています。 ここでデバッグ機能の全てを説明するわけにも行きませんが、対象のファイルを開いた状態で、アクティビティーバーの[デバッグ]アイコン(虫に×)をクリックするするとデバッグモードになります。そこで、上の方の右三角ボタンを押すことで、「**指定したインタプリタ**」でデバッガを起動することができるのです。 この機能を使うと、手動でコマンドを実行するのと違って、引数などのいろいろな設定を保存しておいて簡単に呼び出せるようになっています。 ちなみに他の方も指摘されていますが、『「python manage.py runserver」コマンドでインタプリンタを指定せずとも実行することが可能』というのは、認識が間違えています。 あなたのコマンドの最初に書いてある`python`がインタプリタの指定です。そして、IDEの機能を使えば、このコマンドを毎回入力しなくてもいよとうことでもあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問