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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

4回答

3898閲覧

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

Casablanca_mtg

総合スコア209

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2016/07/01 06:54

お世話になっています。
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から直接呼び出すことはできますか?
この部分がどうしてもわかりません。お教えください

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

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

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

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

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

guest

回答4

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/03 08:56

lightson

総合スコア553

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

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

Casablanca_mtg

2016/07/04 00:06 編集

ありがとうございます。Python27の直下にmoduleを置きまして import sys sys.path.append("/Users/mtg-1/mymodule/") import my_module my_module.my_fibo(8) [1,1,2,3,5,8,13,21] 上記のように表示されました。Commdlinを使う場合〈自作モジュール)はまずsysをimportしてPathで追加をしてあげることが必要だったのですね。知りませんでした。そして moduleをPython27の直下に置くという作業が必要。これで3通りの使い方がわかりました。本当にご指導感謝します。先日からのCodeの記述方法からいろいろ勉強させていただきました。重ねてお礼申し上げます。おかげさまでつかえていたものが取れてすっきりしました。
lightson

2016/07/04 03:31

正しくは、 ・モジュールをc:¥Python2.7 などの既にパスが通っているところに置く もしくは ・モジュールのおいてある場所をsys.pathにアペンドする どちらか一方をやれば良いのであって、両方を行う必要はありません。 要は、パスの通っているところに置いてあればよいということです。 なお、sys.path.append("/Users/mtg-1/mymodule/") という表記では追加されるパスは "/Users/mtg-1/mymodule/"となり、Windowsには存在しません。C:¥¥Users¥¥mtg-1¥¥mymodule/ のようにWindowds上に存在するパスを書く必要があります。どのようなパスが追加されたかは、print sys.pathで見ることができるので、確認ながらすすめてください。
Casablanca_mtg

2016/07/04 05:08

ありがとうございました。理解できました。ところでPythonでのコマンドはWindowsではやはりコマンドプロンプトを使う方が良いのか?IDLEを便利に使うのがよいのか、Commdlineを使うのか、その時の使い分けをしたほうがよいのか?ご意見をください。本日はコマンドライン引数を学習します。ありがとうございました
lightson

2016/07/04 10:10

方法は3つあると思います。まずはIDLEでいいのではないでしょうか。 ・IDELを使い、>>>の部分で詳細をつめながら、もう一つの画面にソースコードを書いていく。 ・エディタ、コマンドプロンプト、コマンドプロンプト上で立ち上げた>>>の3画面ですすめる ・pyscripterやPyCahrm などの開発環境を使う https://sourceforge.net/projects/pyscripter/ http://qiita.com/yamionp/items/f88d50da8d6b548fc44c
Casablanca_mtg

2016/07/05 00:16

ありがとうございます。上記のpyscripterやPyCahrm など参考にさせていただいて 頑張って勉強させていただきます。また質問させていただくかもしれませんがお教えください。よろしくお願いいたします。
Casablanca_mtg

2016/07/06 05:23

こんにちは!コマンドについて再度確認させてください まず、 pythonCommandlineはPythonシェルで対話シェルですね IDLEはエディタとして使いF5で保存できる。そしてRunからPythonshellを立ち上げて対話シェルとしても使える 上記2つはFor pythonにのみ対応している コマンドプロンプトはWinの命令に使える。 またディレクトリを移動することでいろいろな対応ができる そしてPythonと記述することでPythonshellとしても使える。 コマンドライン引数の利用はこのコマンドプロンプトで展開する(IDLEやPythonshellでは利用不可) 以上わたくしの理解はあっていますか? よろしくお願いいたします
lightson

2016/07/06 10:03

この行の意味は取りかねますが、 >上記2つはFor pythonにのみ対応している それ以外はあっていると思います。
Casablanca_mtg

2016/07/06 10:10

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

0

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

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

投稿2016/07/03 05:19

lightson

総合スコア553

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

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

Casablanca_mtg

2016/07/03 06:21

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

2016/07/03 06:27

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

2016/07/03 06:37

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

2016/07/03 08: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で勉強していました。 今後ともわからないところがあればお聞きさせてくださいね。ありがとうございました
guest

0

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

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

python

1>>> import my_util 2>>> my_util.say_hello() 3hello!

my_util.py

python

1def say_hello(): 2 print('hello!') 3 4def say_python(): 5 print('python!') 6 7#if(name == 'main'): 8if __name__ == '__main__': 9 print ('my_util.py: loaded as script file') 10else: 11 print ('my_util.py: loaded as module file')

投稿2016/07/01 13:52

lightson

総合スコア553

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

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

Casablanca_mtg

2016/07/01 23:58

ご回答ありがとうございます。Python Commdlineでは直接Importできないのですね。あくまでもコマンドプロンプトで作業ディレクトリに移動して対話シェルを出すか?あるいはPython my_util.pyと打ち込んで実行するかですね。Python Commdlineはどのように使うのがベストなのか?下手に使ったらエラーが付きまといます。一番便利に利用しやすいのはIDLE,コマンドプロンプトで十分なのですか?Python Commdlineは便利な対話シェルと理解すればよいのですか?それともWindowsではどのように利用すればよいのかがわかりにくいです。
lightson

2016/07/02 11:56

Python Commdlineというのは、どういう時にでる画面が教えてもらえますか? インタラクティブシェルであれば、一般的にはコマンドプロンプトにpython と打ち込んだ時にでる>>>のことです。IDLEを起動した時にも、四角い枠の中に>>>が出ます。これもインタラクティブシェルですが、ここからmy_util.pyをimportしたいということでしょうか? それなら my_util.pyをpython.exeと同じディレクトリ(c:\python35)もしくはc:\python35\Scriptsなどpathが通っている中に入れておけばできると思います。今手元にWindowsがないので、pathはちょっと違っているかもしれません。
Casablanca_mtg

2016/07/03 02:07

ご返事ありがとうございました。 もともとPython2.7.11をinstallしたときに入っていたものです。 完全な対話シェルのような気がします。コマンドプロンプトでCDから作業ディレクトリに移動してPython Enterでインタラクティブシェルが立ち上がりますね。 そうではなくCDから移動しないで私の場合はC:Users\mtg-1>Python Enterで表示したときと同じものだと思います。このコマンドは完全な対話だけのシェルと思いますだからこれからはImportはできないと思います。おかげさまで2日間いろいろ試して使い方がわかった気がします。ちなみに下記の通りとなります http://www.hcn.zaq.ne.jp/cabnw708/pic/python.2.7.11.jpg よろしくお願いいたします
lightson

2016/07/03 02:27

今、手元にWindowsがないので確認はできませんが、そのインタラクティブシェルは、C:¥Python27にCDしてPythonと打ったものと同じだと思います。それならmy_util.pyをC:¥Python27もしくは C:¥Python27¥Scriptsに置けばimport出来ると思います。
Casablanca_mtg

2016/07/03 03: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は同じです。 ある程度は理解できました。やり方がいろいろあるということですね
lightson

2016/07/03 04:37

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

2016/07/03 05: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'] >>> よろしくお願いいたします
guest

0

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

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

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

こうできたはず。

投稿2016/07/01 13:13

attakei

総合スコア2738

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

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

Casablanca_mtg

2016/07/02 01:39

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問