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
0596デフォルトの名無しさん (ワッチョイ 3b4b-BYga [39.111.201.160])
垢版 |
2017/10/11(水) 13:13:45.82ID:RS1iM8i50
2次方程式の解を求めるプログラムを作りたいんですが何が違うのでしょう?
def kai (A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
kai2 = (-B - (B**2 - 4*A*C) ** 0.5 ) / (2*A)
str(kai1)
str(kai2)
return kai1 , kai2


print("ax^2+bx+c")
a = input("aの値を入力してください")
b = input("bの値を入力してください")
c = input("cの値を入力してください")

float(a)
float(b)
float(c)

kai(a,b,c)

print("答えは" + kai1 + "と" + kai2 + "です" )
0597デフォルトの名無しさん (ワッチョイ 3b4b-BYga [39.111.201.160])
垢版 |
2017/10/11(水) 13:14:17.59ID:RS1iM8i50
def の中はしっかりインデントしてます
0599デフォルトの名無しさん (ワッチョイ 3b4b-BYga [39.111.201.160])
垢版 |
2017/10/11(水) 13:54:16.65ID:RS1iM8i50
>>598
動きませんでした
0601デフォルトの名無しさん (ワッチョイ 3b4b-BYga [39.111.201.160])
垢版 |
2017/10/11(水) 14:14:18.48ID:RS1iM8i50
何が違うんですかね?
def kai1(A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai1)

def kai2(A,B,C):
kai2 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai2)


print("ax^2+bx+c")
a = input("aの値を入力してください")
b = input("bの値を入力してください")
c = input("cの値を入力してください")

float(a)
float(b)
float(c)

x1 = kai1(a,b,c)
x2 = kai2(a,b,c)

print("答えは" + x1 + "と" + x2 + "です" )
0604デフォルトの名無しさん (ワッチョイ 3b4b-BYga [39.111.201.160])
垢版 |
2017/10/11(水) 14:55:18.71ID:RS1iM8i50
解決しました
def kai1(A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai1)

def kai2(A,B,C):
kai2 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai2)


print("ax^2+bx+c")
a = float(input("aの値を入力してください"))
b = float(input("bの値を入力してください"))
c = float(input("cの値を入力してください"))

x1 = kai1(a,b,c)
x2 = kai2(a,b,c)

print("答えは" + str(x1) + "と" + str(x2) + "です" )
0606デフォルトの名無しさん (ワッチョイ 9f60-z1uI [180.48.78.237])
垢版 |
2017/10/12(木) 23:38:44.95ID:vEl/Ql1o0
すみません、環境の話になりますが、お教えいただけないでしょうか。

Windows 10 64bitのPCにAnaconda3を用いてpythonを
インストールしました。
参考にしている本が、Cドライブ直下にインストールを勧めていたので、
それに従いました。
idleを立ち上げて、pythonを実行しています(これも本の勧めです。)。

pythonシェルから .pyのファイルを実行しようとすると、
コマンドプロンプトの画面全体に

Fail to open folder shield registry for query !!

のメッセージ?(アラート?)がたくさん出ます。
これは何が悪いのでしょうか。
pyファイルは一応開くことができて、実行及び結果も大丈夫です。

PCがぶっ壊れるのかもしれないと思うと不安です。

どうぞご教示いただけますようお願いいたします。
0608デフォルトの名無しさん (アウアウウー Sa6b-BWNj [106.161.182.73])
垢版 |
2017/10/13(金) 03:08:46.17ID:q20zS1pCa
>>607
venvはディレクトリ指定して環境作れるから プロジェクトのあるディレクトリに作って 移動して activateすれば使えるし作っているプロジェクト専用の環境としてべんり

condaはどこのディレクトリからでも環境の切り替えが楽使いまわせる環境
0610デフォルトの名無しさん (ワッチョイ 9f60-lzBY [180.48.78.237])
垢版 |
2017/10/13(金) 06:35:36.18ID:uAExYUy50
>>609
そうなんです。
検索しても全く出て来ないんです。
メッセージは、きちんとよく確かめた上で転記しましたので、間違いないです。
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はうまくいかないままです…
ぐぐってでてくる人々はみんなうまくいってるっぽいのに……
■ このスレッドは過去ログ倉庫に格納されています

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