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

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

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

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

Python 3.x

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

Q&A

解決済

4回答

1703閲覧

コマンドプロンプトでは、「./」は使えない?

ksat

総合スコア5

Django

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

Python 3.x

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

0グッド

0クリップ

投稿2019/09/10 19:17

コマンドプロンプトで

./manage.py makemigrations

を実行しても、

'.' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と表示されますが、「./」はターミナルだけで有効なコマンドなのでしょうか。

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

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

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

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

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

guest

回答4

0

他の方の回答でほぼ、合っていると思いますが、、

Windowsのコマンドプロンプトでは、 / はスイッチキャラクターです。
と言っても分かる人は少ないと思いますが、コマンドプロンプトで入力した文字に/ が含まれると、そこで一旦、入力文字列は区切られます。
そのため、

./manage.py makemigrations

は、最初の. と 次の/manage.py が分離され、. というコマンドを探し、無いので、

'.' は、内部コマンドまたは外部コマンド、

となります。
別の例では、 dir/w (空白無し) と dir /wが同じ結果となります。

また、hayataka2049さんの指摘にあるように、Windowsでは、カレントディレクトリは、パスに含まれてなくても、最初に検索される場所になるので、 ./ のような指定は不要です。

どちらについても、Windows(MS-DOS)と Linux(Unix)での違いでもあるところで、要注意。

投稿2019/09/11 14:56

pepperleaf

総合スコア6383

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

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

0

ベストアンサー

Windowsのコマンドプロンプトでは、パスの区切りは\です。
また、Windowsのコマンドプロンプトでは、PATH環境変数の値にかかわらず、カレントディレクトリにあるコマンドが実行可能です。

ということで、

CMD

1.\manage.py makemigrations 2または 3manage.py makemigrations

です。拡張子pyがPythonに関連付けられている場合ですが。

コマンドとして指定するのでは無く、コマンドのオペランドとしてパス名をしているする際には、コマンドによっては/もパス区切りとして認識される場合があります。
例:

CMD

1cd foo/bar 23cd foo\bar 4と同じ.

投稿2019/09/11 04:17

otn

総合スコア84531

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

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

0

「./」はターミナルだけで有効なコマンドなのでしょうか。

はい。意味についてはこちらを参照してください。

カレントディレクトリのプログラムを実行するには

shell - Why do you need ./ (dot-slash) before executable or script name to run it in bash? - Stack Overflow

windowsのコマンドプロンプトの場合、今回のケースだとpython manage.py makemigrationsが無難な気がしますが、pythonコマンドで目的のpythonインタプリタが走るようになっている必要はあります。シェバンを見て、とかになるとちと面倒ですね(仮想環境を使っているなら予めactivateしておく、とか。当たり前の作業なんだけど、忘れることも多い)。

投稿2019/09/10 22:39

hayataka2049

総合スコア30933

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

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

0

パス名の記述方法がコマンドプロンプトでは(もといWindowsでは)Linux等他のOSと異なります。Windowsではパス名の区切りは / (スラッシュ) ではなく \ (バックスラッシュか環境によっては円記号)を使用します。

それはさておき、結論から言うとコマンドプロンプトとその他のシェルでは文法がかなり異なります。コマンドプロンプトの代わりにPowerShellを使用すれば若干似た感じになりますがそれでも大分異なります。

Djangoを使用したいならば、今後のことも考えるとコマンドプロンプトではなくWSL(のシェル)を使用することを深くおすすめします。

【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう:ITの教室 - @IT

一応最後に補足ですが、質問者様がおっしゃっているターミナルというのは bashsh , zsh 等のUnix系OSのシェルのことと仮定して回答しました。ターミナルとこれらは混同して使われがちですが厳密には違います。

投稿2019/09/10 20:31

namnium1125

総合スコア2043

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問