X



くだすれPython(超初心者用) その35 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ a36e-zUMb [106.72.44.32])
垢版 |
2017/06/02(金) 22:49:01.56ID:DAT8M7/R0
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その34
http://echo.2ch.net/test/read.cgi/tech/1495971255/
VIPQ2_EXTDAT: default:vvvvvv:1000:512:----: EXT was configured
0611デフォルトの名無しさん (ワッチョイ 9f60-lzBY [180.48.78.237])
垢版 |
2017/10/13(金) 06:40:27.90ID:uAExYUy50
>>609
何のアプリかは、自分がPCに詳しくないので、正確にはわかりません。
繰り返しになりますが、idleからpyファイルを指定実行しようとすると、コマンドプロンプトの画面が、このメッセージで埋まるほどいっぱいになります。
0614デフォルトの名無しさん (ワッチョイ abed-BSx0 [58.70.103.194])
垢版 |
2017/10/13(金) 12:16:39.86ID:Hu5pWW8/0
>>606
必要ないなら取り合えずAnacondaじゃなくて素のPython入れてみるのはどうですかね。NumpyとかScipyあたりは後からでも入れられるし。
どうしてもAnacondaだけにしかないこの機能が必要とかなら知らんけど。
0615デフォルトの名無しさん (ワッチョイ abed-BSx0 [58.70.103.194])
垢版 |
2017/10/13(金) 12:33:31.25ID:Hu5pWW8/0
あと、ググるなら本の名前といっしょにググってみた方が精度は高くなる
それででないなら、何かを間違っているか、おま環の可能性高い

>>610
転記ってコピペじゃなくて?
0616デフォルトの名無しさん (ワッチョイ abed-BSx0 [58.70.103.194])
垢版 |
2017/10/13(金) 12:42:10.96ID:Hu5pWW8/0
開こうとしてるpyファイルの中身も気になる
https://ideone.com/とかに貼るといい
0619デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/14(土) 17:08:46.24ID:Yd9GZUH10
Python2.7、Pyinstaller3.3にて
pyinstaller --onefile 8tousin.py -i 8.ico --noconsole
とやって 8tousin.exeを作ると
subprocess.PopenのところでWindowsErrorしてしまいます。
(同じフォルダにがっつりおいてある1san.exeが見つからないとな)

さいごの--noconsoleを消してexeを作るとちゃんと動くのですが、
Dos窓がでたまんまになりキモイのでなんとかしたいです。

どなたか良い知恵をお貸し下さい。。。

----8tousin.py----
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
dpath = os.path.dirname(sys.argv[0])
epath = os.path.join(dpath,'1san.exe')
command_line =(epath + ' aishiteru yo')
self.qu = Queue()
self.pb = subprocess.Popen(
   command_line, startupinfo=startupinfo, cwd='./',
   stdout=subprocess.PIPE, stderr=None, shell=True)
self.t = Thread(
   target=enqueue_output, args=(self.pb.stdout, self.qu))
self.t.daemon = True
self.t.start()
----EOF----
0621デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/14(土) 18:58:48.31ID:Yd9GZUH10
>>620
つかってないです

うごくexeができる pyinstaller --onefile 8tousin.py -i 8.ico
1さんがみつからない pyinstaller --onefile 8tousin.py -i 8.ico -w

ってことです

ちなみに1さんは
kimoiyo-
uwaaan
を1秒毎に交互に出力し続けるようなプログラムです。
0625デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/14(土) 20:06:43.91ID:Yd9GZUH10
環境が詳しく書いて無くてごめんなさいでした
Python2.7.13/2.7.14(どっちでも), Pyinstaller3.3, Windows7/10(どっちでも)32bit

>>624
Falseにしてみても8頭身は1さんをみつけられませんでした。



cwdをdpathにしてみても、だめでした


>>622
stdout=win32console.GetStdHandle(win32console.STD_OUTPUT_HANDLE)
とかすればいいんでしょうか...
0626デフォルトの名無しさん (ワッチョイ e680-hLkI [153.187.180.175])
垢版 |
2017/10/15(日) 00:24:14.94ID:y0fiNdyH0
Linux なら、端末から起動したプロセスは、端末の子プロセスになるから、
端末を終了すると、その子プロセスもすべて強制終了させられる

ジョブグループ・プロセスグループとか、プロセスには親子関係がある

pstree とかで見てみ
0627デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/15(日) 00:53:38.14ID:BNIuLxtf0
>>626
Windowsなのでございます
すみません

試しにtasklistでみてみましたが、
タスクマネージャーみたいなもんですねとしかわかりませんでした><

詰まってるのはself.pb = subprocess.Popen(ほげほげほげ)の行で間違いないので
stdout=subprocess.PIPE ってなってるのを なんか適切なところへつなげばよさそうであります。

みなさんありがとうございます。
もうしばらくおつきあいください。。。
0628デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/15(日) 12:41:06.05ID:BNIuLxtf0
>>622
stdout=win32console.GetStdHandle(win32console.STD_OUTPUT_HANDLE)
とやっても詰まって動きませんでした。。。



stdout=sys.stdout とか open('./temp','w') とか cStringIO.StringIO()とか os.pipe()でも動かず、
stdout=None とか subprocess.DEVNULLとか stdout にしたら動いたものの、
1さんの声(キモイヨーとウワーン)をとってこれませんです。
(stdoutの内容がブラックホールに吸い込まれてる感…

なんかウマーイ出力先をご存じの方、
あるいは迂回する方法をご存じの方、
いらっしゃいましたら宜しくご教示お願い致します。
0629デフォルトの名無しさん (アウウィフ FF6b-ZT8l [106.171.87.42])
垢版 |
2017/10/15(日) 13:00:28.77ID:UFWzts7mF
マニュアルくらい嫁
0631デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/15(日) 13:14:16.98ID:BNIuLxtf0
>>629
importとか win32console.AllocConsole() はやってます

>>630
えっ
えっ
0633デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/15(日) 19:09:58.02ID:BNIuLxtf0
標準語ではたぶん「コケる」ですny > 詰まる

>>632
そこをなんとか

>>626
親?のGUI窓のpid、子(Popenのやつ)のpidはとってこれるですが
そこからどうしたらいいのかわかりません
0636デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/15(日) 21:52:04.01ID:BNIuLxtf0
>>634
うーんと
M$からプロセスエクスプローラなるものをもってきて
ぷろせすさん達に親子兄弟関係があるのはスッキリハッキリ見えるっよになりましたが
そっれが
いまつっかかってるPIPE問題にどう絡んでくるのかがわかりません><
0643デフォルトの名無しさん (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/16(月) 14:37:11.94ID:o0KQy9YP0
すみません、教えてください。

Windows 10 + Anaconda + jupyter notebookで、

>ModuleNotFoundError Traceback (most recent call last)
><ipython-input-1-a649b509054f> in <module>()
>----> 1 import tensorflow

>ModuleNotFoundError: No module named 'tensorflow'

といったエラーが出ます。
よく分からないのが、Anaonda + Consolで、pythonを起動して、
>import tensoflow
するとエラーは出ません。

もっというと、先週は動いていた環境が、今週PC起動したら、壊れていた感じです。
0644643 (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/16(月) 15:29:00.57ID:o0KQy9YP0
いろんなウェブサイトを調べて
Terminalで
たくさんのコマンドを実行しました。

>pip install environment_kernels

実行したあとに、
動作するようになった気がするのですが、
このコマンドは関係しているのでしょうか?
0645デフォルトの名無しさん (ササクッテロル Sp4f-yksP [126.233.212.34])
垢版 |
2017/10/16(月) 16:03:51.33ID:cgzumvwFp
あるディレクトリ内にある全てのファイルの合計サイズを求めたいのですが、そのファイルの数がすごく多く名前も長いためos.listdirを使うとメモリが溢れてしまいそうだと考えています。(ファイル名のバイト数*ファイル数で計算しました。怖くて実際にはやっていません…)
この場合、メモリを大消費せずに合計サイズを求めるにはどうすればいいんでしょうか?
0647デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/16(月) 16:38:01.84ID:jD/6Uf6m0
>>638
どこかよい参考サイトがあれば教えて下さい

>>641-642
やっぱりPopenのところで動かなくなりますが、
一瞬DOS窓が出てすぐ消えておもしろきもいですw
ありがとうございます。
参考サイトもみにいってきましたがVBS使うとキモがられてしまうので
なんとかexeだけでなんとかしたいです…
わがままいってすみません
0652デフォルトの名無しさん (ワッチョイ 17e5-dPak [118.241.248.196 [上級国民]])
垢版 |
2017/10/16(月) 18:48:18.43ID:lK6fStR50
くだすれってなに?
0660643 (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/17(火) 09:25:57.97ID:YxZt6A5Y0
さらに良くわからない現象が発生しました。

昨日、anaconda入れ直したら、バージョンが5にあがったせいか、
jupyter notebook

知らないNEW UIになったりします

新しいUIだとエラーで、
旧いUIだと正常終了。

新しいUIの出し方も知らないし(初めの一回目だけ?みたいな)、
よくわからない。。。
0661643 (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/17(火) 10:14:17.50ID:YxZt6A5Y0
エラーが出る
jupyter notebook

>alpha (版のことですよね)
みたいな表示が出てるので、
無視しておけば良いのでしょうか。
0665デフォルトの名無しさん (アウアウエー Sa5a-ZtcI [111.239.35.67])
垢版 |
2017/10/17(火) 13:04:51.52ID:tyxdZvxZa
>>645
os.walk
os.path.walk
0666デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/17(火) 16:34:38.35ID:MqI78X0p0
>>659
>検索
上から20個までは読みました

>エラー取得
それがですね、
except:
errors = traceback.format_exc()
dlg = wx.MessageDialog(None, '%s' % (str(errors)), 'Err.')
dlg.ShowModal()
dlg.Destroy()
とかしておいてもなーもでないんです・・・

でも
except OSError:
dlg = wx.MessageDialog(None, 'OSERRORだゴルァ', 'Err.')
dlg.ShowModal()
dlg.Destroy()
とやっておくと、ゴルァダイアログは出るという。
0672643 (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/17(火) 19:13:13.14ID:YxZt6A5Y0
ブラウザ落として、
もう一度起動したら動作しました。

最初の1回目はうまく動作しない、
といった現象になるのでしょうか。

こんな不安定では困るような。
0674デフォルトの名無しさん (アウアウエー Sa5a-W9M8 [111.239.50.199])
垢版 |
2017/10/17(火) 20:35:40.17ID:OFQ0CJNGa
何度も繰り返し(しかも一人じゃなく数名から)言われてることをやらずに
頑なに自分の主張を繰り返す香具師ってなんなの?

人の話聴く気がないなら質問しなければいいのに
0676デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/18(水) 01:58:39.21ID:PBJjhy8e0
PIPEつなぐ先がないんじゃね? のご指摘の通り、

>>619に書いたそーすの
stdoutの値が気に入らない というのがPython様のご託宣でした。。。

GUI窓化すると sys.stdout.isatty()=Falseです
DOS窓がついてれば sys.stdout.isatty()=Trueです

これ どーやったら FalseをTrueにできますかね。。。。

win32pipe.CreatePipe(sAttrs, 0) とかしてつくったぱいぷっぽいのは
<PyHANDLE:736>っていう謎物体で
idとってくると38457852とかってあきらかに変な数値で
あんじょーバッドデスクリプ田っておこられ

そもそもファイルライクオブジェクトじゃないので
sys.stdoutのかわりにならないという。(.fileno()もできなかった)

−−−−ここからが本題−−−−
どなたか
PyHANDLEオブジェクトを
ファイルライクにつかえるようにする(.fileno()でintがかえってくるなにかに変身させる)方法を
ご教示ください><
0678デフォルトの名無しさん (ワッチョイ e680-hLkI [153.187.180.175])
垢版 |
2017/10/18(水) 02:14:00.52ID:BXrTaZiI0
>GUI窓化すると sys.stdout.isatty()=Falseです
>DOS窓がついてれば sys.stdout.isatty()=Trueです

>これ どーやったら FalseをTrueにできますかね。。。。

コマンドプロンプトは、端末・シェルだろ。
GUI は、単なるアプリだろ

コマンドプロンプトとGUIの、プロセス・実行ファイル名を見てみ

OS の仕組み・機能を勉強するのに、数年は掛かる。
OS のプロセス・ジョブ・プロセスグループとか、知らないだろ?

OS の仕組みは、プログラミングと関係ないから。
LPIC 資格を勉強していないと、システム運用・構築は無理
0680643 (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/18(水) 08:42:38.91ID:sTZhA8sJ0
>>673-674

へんなのわいてkiteー

anacondaを再インストールしても
腐ったり直ったりという症状で
ググった内容をいくつも試していると
書いてるのに。

レス読まない人たちでつね。
0685デフォルトの名無しさん (ワッチョイ e679-BSx0 [153.142.115.40])
垢版 |
2017/10/18(水) 10:10:32.27ID:sTZhA8sJ0
妙な回答というよりも、回答なしという感じ。

anacondaが初回にalpha jupyterを起動すると、不具合が出るのだから、
今後はみんなanaconda情報がいるようになるよ。

pipするのかcondaするのか、混ぜて大丈夫なのか、も。
0688デフォルトの名無しさん (ワッチョイ 87b3-C1Wt [60.86.178.93])
垢版 |
2017/10/18(水) 14:52:05.33ID:PBJjhy8e0
>>676
>GUI窓化すると sys.stdout.isatty()=Falseです
>DOS窓がついてれば sys.stdout.isatty()=Trueです
これについては もっと調べて
 isatty()さんはごまかせないのですね とわかったのと

sys.stdoutだけなら

self.log = wx.TextCtrl(
self, wx.ID_ANY, size=(400,20), pos=(5,145),
style=(wx.TE_MULTILINE | wx.TE_READONLY))
sys.stdout = self.log

とか打てばかんたんにつなぎ替えれちゃうのはわかりました。

でもsuprocess.PIPEはうまくいかないままです…
ぐぐってでてくる人々はみんなうまくいってるっぽいのに……
0695619 (ワッチョイ 67b3-GnHq [60.86.178.93])
垢版 |
2017/10/20(金) 08:15:54.81ID:WMt7LAmB0
>>619
GUIまどを作ってる部分(wxPython)に
self.log = wx.TextCtrl(
   self, wx.ID_ANY, size=(400,20), pos=(5,145),
   style=wx.TE_READONLY)
と書き足して、
ひっかかっているsubprocess.Popenのところのstdoutを
self.pb = subprocess.Popen(
   command_line, shell=True, startupinfo=si,
   cwd=dpath,
   stdout=self.log)
とやったら、エラーが採れました。↓

Traceback (most recent call last):
File "C:\8tousin.py", line 197, in SearchIchisan
stdout=self.log)
File "C:\Python27\lib\subprocess.py", line 382, in __init__
errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
File "C:\Python27\lib\subprocess.py", line 531, in _get_handles
c2pwrite = msvcrt.get_osfhandle(stdout.fileno())
AttributeError: 'TextCtrl' object has no attribute 'fileno'

なお
stdout=subprocess.PIPEだとエラー出ず、しかし動かず。
どなたか解決策をご教示下さい><
0697デフォルトの名無しさん (ワッチョイ dfa9-hanu [221.189.156.164])
垢版 |
2017/10/21(土) 18:46:44.04ID:WJCLL1q70
本当に初歩の初歩のなのですが、IDLEについての質問です。
オライリーの「Pythonチュートリアル第三版」を使って勉強していますが、
ほんの数行でも複数行にわたる簡単なプログラムをIDLEで書く際に、
「>>>」が表示されず、改行すると行の先頭に飛んでしまいます。

使っているのは、
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
となります。
おとなしく32bit版にすべきでしょうか?
0700デフォルトの名無しさん (ワッチョイ dfa9-hanu [221.189.156.164])
垢版 |
2017/10/21(土) 19:52:32.14ID:WJCLL1q70
失礼しました、間違えました。
表示されないのは、「>>>」ではなく、「...」です。

if 〜 elif の文を書こうと思った時に出てこないので、
elif を書こうとする際に、前の if よりも後に出てきてしまうのです。

これで困っています。
0701デフォルトの名無しさん (ワッチョイ df1d-wYkv [219.100.239.43])
垢版 |
2017/10/21(土) 23:08:04.80ID:kgvbDblx0
In [128]: if 1 == 1:
.....: print("this")
.....: elif 2 == 2:
.....: print("this2")
.....:

こういうことですよね。
IDLE使ったことないけど、エディタ部分で書いてその箇所(選択した行とか)を
実行するとかそういうのはできないの?
0704名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ dfa9-hanu [221.189.156.164])
垢版 |
2017/10/22(日) 13:24:20.08ID:IdBPzjIh0
>>703
いえ、そうではありません。
このように書いています。

>>> x = int(input("整数を入れてください"))
整数を入れてください100
>>> if x < 0:
. x = 0
. print("負数はゼロとする")
. elif x == 0:

ここでエラーが出ます。
最初のドットは整えるために書いてあります。表示はされません。
elif の段階でprintと同じ位置に改行されますが、本に書いてある「 ... 」が表示されないので、
エラーが出ます。
0709名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ df8a-7buw [125.205.62.116])
垢版 |
2017/10/22(日) 13:53:42.69ID:5tzzfi8J0
>>706
Pastebin(ペーストビンと読むらしい)などを使われてはいかがですか
ソースコードを貼り付けて色分けまでしてくれたりします

有名どころ
https://pastebin.com/

名前はダサいけどOSDNコピペはログインしないで投稿すると一週間で自動削除になるので気楽に使える
https://ja.osdn.net/pastebin/

更にはブラウザでソースコードを投稿すると実行結果を表示してくれる
IDEONE(スペースランナウェイではなくアイディーイーワンと読むらしい)というものもあるそうです
https://ideone.com/
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況