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

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

ただいまの
回答率

90.12%

IDLE,Commdline,コマンドプロンプトの使い分け

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,880

Casablanca_mtg

score 160

お世話になっています。
Pythonを勉強していますが基本的なことを教えていただきたいです。
IDLE
シェルとして使えますね。
またFileから新しいUntitledを出してコードを記述してF5で外部ファイルとして保存でき、すぐに元のUntitledに答えが返ります。

Commdline
これは対話シェルと呼ばれるものですか?
外部ファイルをインポートするときどのような使い方をすればよいのかよくわかりません。

コマンドプロンプト
外部ファイルの呼び出し方はわかります。作業ディレクトリに入って(Python プログラム名)でOKですね
このコマンドも最初にPythonと打ち込むと対話シェルが出てCommdlineと同じ働きをしますね

ここで一番知りたいのは外部ファイルはコマンドプロンプトで実行するかIDLEを使うかが便利ですね。
対話シェルは言葉のとおり対話するだけですか?
対話シェルから自作モジュールなどのインポートがうまくいかないのです

def say_hello():
print('hello!')

def say_python():
print('python!')

if(name == 'main'):
print('my_util.py: loaded as script file')
else:
print('my_util.py: loaded as module file')   

my_util.pyとして保存しました
これを、Commdlineから直接呼び出すことはできますか?
この部分がどうしてもわかりません。お教えください

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

0

>わかりましたがこの場合も下記になりますよね
>C:Users\mtg-1>cd c:\python27
>c:\python27>python
ならないです。
>Python(Commdline)を使っては自作モジュールはImportはできないですね。
できると思いますよ。
もう一度次の手順で試してもらえますか。
・自作のモジュールをc:\Python27の直下においてください。
・マウスを使って、スタートメニュー→python27→python(commandline)と選択してください。(これがやりたいことですよね?)
・インタラクティブシェルが立ち上がるので、自作モジュールをimportしてください。

>ただしPython(Commdline)ではライブラリにあるモジュールはImportできます。
ライブラリにあるモジュールがimportできる理由は、おいてある場所がsys.pathに書いてあるからです。
自作のモジュールについてもsys.pathに書いてあるところに置けば、importできると思います。
http://msrx9.bitbucket.org/blog/html/2013/08/07/set_pythonpath_temporarily.html

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/06 14:23

    こんにちは!コマンドについて再度確認させてください
    まず、
    pythonCommandlineはPythonシェルで対話シェルですね

    IDLEはエディタとして使いF5で保存できる。そしてRunからPythonshellを立ち上げて対話シェルとしても使える
    上記2つはFor pythonにのみ対応している

    コマンドプロンプトはWinの命令に使える。
    またディレクトリを移動することでいろいろな対応ができる
    そしてPythonと記述することでPythonshellとしても使える。
    コマンドライン引数の利用はこのコマンドプロンプトで展開する(IDLEやPythonshellでは利用不可)
    以上わたくしの理解はあっていますか?
    よろしくお願いいたします

    キャンセル

  • 2016/07/06 19:03

    この行の意味は取りかねますが、
    >上記2つはFor pythonにのみ対応している

    それ以外はあっていると思います。

    キャンセル

  • 2016/07/06 19:10

    上記2つはFor pythonにのみ対応しているで指摘したのは
    ・pythonCommandlineはPythonシェルで対話シェルですね
    ・IDLEはエディタとして使いF5で保存できる。そしてRunからPythonshellを立ち上げて対話シェルとしても使える
    ということを言いたかったのです。ややこしくってすみません
    すべて理解通りということですね。ありがとうございました

    キャンセル

0

用語が錯綜していているので、若干エスパー気味に回答してみます。

pythonのソースコードはそのままモジュールとして取り扱い可能なので、
対話シェル実行時のパスにあるファイルはimportで読み込みは可能です

> import my_util
my_util.py: loaded as module file
> my_util. say_hello()
hello!

こうできたはず。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/02 10:39

    上記のご回答はコマンドプロンプトから対話シェルを表示させて実行するという意味ですか?直接Python Commdlineでimport my_utilとやってもエラーになりますね。このあたりの使い方がよくわかりません。Python Commdlineは保存していない物の対話と考えるのでしたら理解できます。蒸気を実行するにはコマンドプロンプトで作業ディレクトリまで移動したうえで対話シェルを表示させてやらないとだめですか?

    キャンセル

0

インタラクティブシェルでmy_util.pyをimportするには、

  • コマンドプロンプトで、my_util.pyのあるディレクトリにcdし
  • pythonと打ち込んで、インタラクティブシェルを起動します。
  • 次のように打ち込みます。
>>> import my_util
>>> my_util.say_hello()
hello!


my_util.py

def say_hello(): 
    print('hello!')

def say_python(): 
    print('python!')

#if(name == 'main'):
if __name__ == '__main__':
    print ('my_util.py: loaded as script file') 
else: 
    print ('my_util.py: loaded as module file')

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/03 12:59

    お世話になります。下記のようになります
    ①Microsoft Windows [Version 10.0.10586]
    (c) 2015 Microsoft Corporation. All rights reserved.

    C:\Users\mtg-1>python
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import my_module
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: No module named my_module
    >>>
    ②Microsoft Windows [Version 10.0.10586]
    (c) 2015 Microsoft Corporation. All rights reserved.

    C:\Users\mtg-1>cd c:\python

    c:\python>python
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import my_module
    >>> my_module.my_abs(-3)
    3
    >>> my_module.my_fibo(8)
    [1, 1, 2, 3, 5, 8, 13, 21]
    >>>
    この違いを言いたかったのです。①ではimportはできないですが②ではImportができます。①とPython Commdlineは同じです。
    ある程度は理解できました。やり方がいろいろあるということですね

    キャンセル

  • 2016/07/03 13:37

    Widnows7で動作の確認をしました。私の場合、スタートメニュー→python27→python(commandline)と選択したところ、コマンドプロンプトでc:¥python27¥python.exeが実行れました。同じことをやって、インタラクティブシェルに次のように打ち込んで、帰ったきた結果を教えてもらえますか。
    >>>import sys
    >>> print sys.path

    キャンセル

  • 2016/07/03 14:12

    お世話になります
    下記のように表示されました。
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> print sys.path
    ['', 'C:\\Windows\\SYSTEM32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']
    >>>
    よろしくお願いいたします

    キャンセル

0

python はC:\\Python27に入っているようですね。
ひとつ前のコメントで、 次のようにありますが、これは記入ミスですか?
それともc:\pythonにもpythonが入っているのですか?
②C:\Users\mtg-1>cd c:\python
c:\python>python

また読み込みたいモジュールは、どのディレクトリ保存してありますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/03 15:21

    pythonディレクトリはC:直下に存在します。Python27には存在しません。
    Python27もpythonもC:直下に存在します
    モジュールはPythonディレクトリの中に入れています。なので上記のような呼び出し方になります。

    キャンセル

  • 2016/07/03 15:27

    もう一度確認させてください。
    ・c:\pythonは存在する
    ・c:\Python27は存在する
    >pythonディレクトリはC:直下に存在します。Python27には存在しません。
    これはどういう意味でしょうか?

    キャンセル

  • 2016/07/03 15:37

    わかったような気がします。
    c:\pythonは、RyokoMoriuchiさんが作った作業ディレクトリということですよね。?
    それであれば、読み込みたいモジュールはc:\Python27の下に入れてください。そうすれimportできます。

    キャンセル

  • 2016/07/03 17:37

    わかりましたがこの場合も下記になりますよね
    C:Users\mtg-1>cd c:\python27
    c:\python27>python
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    この形ですね。Python(Commdline)を使っては自作モジュールはImportはできないですね。ただしPython(Commdline)ではライブラリにあるモジュールはImportできます。
    自分で作った分は必ずCDから作業ディレクトリに移動して呼び出さないと駄目みたいです。Python(Commdline)では
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import turtle
    >>> kame = turtle.Turtle()
    >>>
    これで実行するとPython Turtle Graphicsが表示されます。
    多分そのような組み分けがあるのかもしれません。
    毎日勉強しています。今はマイナビ第8勝目です。だんだん難しくなってきています。
    やはりコピペでは覚えられないと思いました。自分で記述して初めて前に進める気がします。いろいろありがとうございました。マイナビとPython-izmで勉強していました。
    今後ともわからないところがあればお聞きさせてくださいね。ありがとうございました

    キャンセル

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

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる