当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2023/07/13(木) 18:48:41.56ID:INS7SIu4761デフォルトの名無しさん
2024/06/25(火) 19:53:07.98ID:mddxyJup >>760
参照とはオブジェクトを指し示すもののこと
ここでいうオブジェクトとはメモリ領域のことでありプログラミング言語においては特定の値のことを指す
つまりそれを指し示すようなものであればなんでも良い
VM言語であればスタックフレームからのオフセットに過ぎなかったりする
参照とはオブジェクトを指し示すもののこと
ここでいうオブジェクトとはメモリ領域のことでありプログラミング言語においては特定の値のことを指す
つまりそれを指し示すようなものであればなんでも良い
VM言語であればスタックフレームからのオフセットに過ぎなかったりする
762デフォルトの名無しさん
2024/06/25(火) 22:50:01.65ID:UoDN+2II >>760
とりあえずC++では参照渡しはちゃんと定義されている用語で、
知ってる限りではC++での使われ方と違う使われ方はしないものなので、C++における参照渡しを勉強してくれ
そしてnullを代入することに意味のある変数を用意して実際に参照渡しのコードを書いてみて
CSとはなんぞという質問が物語っていて、Computer Scienceで共有すべき知識を持っていない状態のように思う
とりあえずC++では参照渡しはちゃんと定義されている用語で、
知ってる限りではC++での使われ方と違う使われ方はしないものなので、C++における参照渡しを勉強してくれ
そしてnullを代入することに意味のある変数を用意して実際に参照渡しのコードを書いてみて
CSとはなんぞという質問が物語っていて、Computer Scienceで共有すべき知識を持っていない状態のように思う
763デフォルトの名無しさん
2024/06/25(火) 23:11:20.56ID:nRVgOfun764デフォルトの名無しさん
2024/06/25(火) 23:38:25.41ID:WkoTZsDY >>760
>ただ、「参照渡し」とは、サブルーチンへの引数の渡し方でなく、サブルーチンからの引数の返り方を以て、
>・結果が呼び元に返ってくる
引数も結果も「返る」というのは少し違う
サブルーチン内での引数を変更するとその時点でその変更が直接呼び出し元に反映される
>ただ、「参照渡し」とは、サブルーチンへの引数の渡し方でなく、サブルーチンからの引数の返り方を以て、
>・結果が呼び元に返ってくる
引数も結果も「返る」というのは少し違う
サブルーチン内での引数を変更するとその時点でその変更が直接呼び出し元に反映される
765デフォルトの名無しさん
2024/06/26(水) 00:11:27.85ID:kR99xHRb 間違ったこと書いてた張本人は間違いを指摘されても反省するどころか開き直っちゃってるのが解せない
最近そんなやつが多くて萎える
最近そんなやつが多くて萎える
766デフォルトの名無しさん
2024/06/26(水) 00:20:27.75ID:/ebqJ/eA >>765
これな
これな
767デフォルトの名無しさん
2024/06/26(水) 00:20:45.10ID:/ebqJ/eA 多分、朝鮮人
768デフォルトの名無しさん
2024/06/26(水) 01:10:11.09ID:yv8Z2CuH >>760
番地なのか、番地にあるものなのかのような違いで、Pythonはコンピューターそのものですらやらない方法をとってしまっている。
大きなデータではなければ、コピーを作って渡すのが、ほとんどのプログラミング言語の仕様。
Pythonの関数はアセンブラだと他のプログラミング言語はサブルーチンの呼び出しと同じだが、Pythonはただのジャンプ命令でプログラムを行ったり来たりしているだけ。
いまのCPU内はレジスタが多いからあまり問題にならないが、Pythonも一定の長い連続領域の場合は、メモリとファイルを使うことになる。
同時実行プロセスが多い高性能サーバーとは相性が悪い。
クラウドという仮想サーバーなら、動的に仮想サーバーが変えるから、Pythonでいい。
もともと忘れ去られていた言語が掘り起こされて使われて、変な仕様だがよく使われるようになっただけ。
Pythonそのものが仮想マシンで動くように変更されたから、CUIで復活したのがいつの間にか、メインプログラミング言語になっている奇妙な現象
ただし、AWS社以外はあまり乗り気でない。
洗練されていない汚い言語は、汚く見せない技術がいる。
番地なのか、番地にあるものなのかのような違いで、Pythonはコンピューターそのものですらやらない方法をとってしまっている。
大きなデータではなければ、コピーを作って渡すのが、ほとんどのプログラミング言語の仕様。
Pythonの関数はアセンブラだと他のプログラミング言語はサブルーチンの呼び出しと同じだが、Pythonはただのジャンプ命令でプログラムを行ったり来たりしているだけ。
いまのCPU内はレジスタが多いからあまり問題にならないが、Pythonも一定の長い連続領域の場合は、メモリとファイルを使うことになる。
同時実行プロセスが多い高性能サーバーとは相性が悪い。
クラウドという仮想サーバーなら、動的に仮想サーバーが変えるから、Pythonでいい。
もともと忘れ去られていた言語が掘り起こされて使われて、変な仕様だがよく使われるようになっただけ。
Pythonそのものが仮想マシンで動くように変更されたから、CUIで復活したのがいつの間にか、メインプログラミング言語になっている奇妙な現象
ただし、AWS社以外はあまり乗り気でない。
洗練されていない汚い言語は、汚く見せない技術がいる。
769デフォルトの名無しさん
2024/06/26(水) 01:15:56.13ID:yv8Z2CuH >>764
サブルーチンとは呼び出し元の情報をメモリに保存して、呼び出された側の処理が終わったときにメモリから情報を取り出して元に戻ることだ。
Pythonの関数は後付けであるため、関数と言いながらも実態は処理を書き分けただけにすぎない。
サブルーチンではなく、プログラム内を飛んでいるだけ。
スタック領域にプッシュもポップもしていない。
サブルーチンとは呼び出し元の情報をメモリに保存して、呼び出された側の処理が終わったときにメモリから情報を取り出して元に戻ることだ。
Pythonの関数は後付けであるため、関数と言いながらも実態は処理を書き分けただけにすぎない。
サブルーチンではなく、プログラム内を飛んでいるだけ。
スタック領域にプッシュもポップもしていない。
770デフォルトの名無しさん
2024/06/26(水) 01:18:19.20ID:yv8Z2CuH オブジェクトという概念もあとから追加したせいで、わかりにくい分類の型ができてしまった。
コレクションという用語にしなかったのも謎
コレクションという用語にしなかったのも謎
771デフォルトの名無しさん
2024/06/26(水) 10:30:09.24ID:esETAUdE 初心者です、tkinterで作ったGUIの反応が遅い
afterでマシにはなったんだけど
で、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法ありますか
やりたいことは、
クリック時刻とbindした関数が呼ばれた時刻をログに取ってみたい
Windowsです bindした関数が呼ばれる以前にユーザの作ったプログラムでクリック把握する方法、そんなのあるか!ではなくて、後追いででも確認できないものかと
afterでマシにはなったんだけど
で、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法ありますか
やりたいことは、
クリック時刻とbindした関数が呼ばれた時刻をログに取ってみたい
Windowsです bindした関数が呼ばれる以前にユーザの作ったプログラムでクリック把握する方法、そんなのあるか!ではなくて、後追いででも確認できないものかと
772デフォルトの名無しさん
2024/06/26(水) 11:16:31.48ID:esETAUdE >>771 です
そのごググって下記のページで近いことが出来そうかと
本当は早くする方法が知りたいのだけど、今は何を聞けばいいのかもわからないのでまた後程
https://taida-eng.com/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89/python%E9%80%86%E5%BC%95%E3%81%8D%EF%BC%9A%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84/
そのごググって下記のページで近いことが出来そうかと
本当は早くする方法が知りたいのだけど、今は何を聞けばいいのかもわからないのでまた後程
https://taida-eng.com/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89/python%E9%80%86%E5%BC%95%E3%81%8D%EF%BC%9A%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84/
773デフォルトの名無しさん
2024/06/26(水) 14:03:59.21ID:H6JHbd75 root.bind('<Button-1>', lambda _: print(datetime.datetime.now())
774デフォルトの名無しさん
2024/06/26(水) 14:53:45.89ID:esETAUdE >>773 ありがとうございます
早速やってみて、時刻がコンソール出力されることを確認しました
やってみると >>772 のリンク先のpynputを使用したほうが早い時刻を取得しており、
体感的にもpynputの時刻がマウス操作時刻と思われます
また、関数が呼ばれた時点の時刻も表示したら、
pynput -> 関数 -> rootにbindのラムダ関数の順に表示されました
わたくし、何か勘違いしてますでしょうか
pynputクリック検知 2024-06-26 14:46:54.026669
関数コール時時刻 2024-06-26 14:46:55.787093
クリック検知時刻 2024-06-26 14:46:56.076000 <- rootにバインドしたラムダ関数
pynputクリック検知 2024-06-26 14:41:35.307322
イベント発生時y 299
chartkobetu呼ばれました
選択中の銘柄 4208 型 <class 'str'>
個別5mの存在順i番目銘柄= 18 存在列 126 銘柄コード 4208 <class 'str'>
個別チャート日足、呼ばれました
j= 1 dfcoloffset= 1 linecolor= #ffff00
j= 2 dfcoloffset= 2 linecolor= #189af9
j= 3 dfcoloffset= 3 linecolor= #e38089
j= 4 dfcoloffset= 5 linecolor= #00ff00
クリック検知時刻 2024-06-26 14:41:38.955128
早速やってみて、時刻がコンソール出力されることを確認しました
やってみると >>772 のリンク先のpynputを使用したほうが早い時刻を取得しており、
体感的にもpynputの時刻がマウス操作時刻と思われます
また、関数が呼ばれた時点の時刻も表示したら、
pynput -> 関数 -> rootにbindのラムダ関数の順に表示されました
わたくし、何か勘違いしてますでしょうか
pynputクリック検知 2024-06-26 14:46:54.026669
関数コール時時刻 2024-06-26 14:46:55.787093
クリック検知時刻 2024-06-26 14:46:56.076000 <- rootにバインドしたラムダ関数
pynputクリック検知 2024-06-26 14:41:35.307322
イベント発生時y 299
chartkobetu呼ばれました
選択中の銘柄 4208 型 <class 'str'>
個別5mの存在順i番目銘柄= 18 存在列 126 銘柄コード 4208 <class 'str'>
個別チャート日足、呼ばれました
j= 1 dfcoloffset= 1 linecolor= #ffff00
j= 2 dfcoloffset= 2 linecolor= #189af9
j= 3 dfcoloffset= 3 linecolor= #e38089
j= 4 dfcoloffset= 5 linecolor= #00ff00
クリック検知時刻 2024-06-26 14:41:38.955128
775デフォルトの名無しさん
2024/06/26(水) 15:01:12.85ID:esETAUdE >>774の最後についているのは今作っているコードの動作状況を確認するためprintで出力しているものです
編集中に送信してしまいましたので、時刻検知とは関係ない内容で、時刻の取得時点の比較ができないデータです、すみません
編集中に送信してしまいましたので、時刻検知とは関係ない内容で、時刻の取得時点の比較ができないデータです、すみません
776デフォルトの名無しさん
2024/06/26(水) 17:34:00.99ID:zF60WWs1777デフォルトの名無しさん
2024/06/26(水) 19:15:47.84ID:esETAUdE >>776 レスありがとうございます
最小限だと同じ時刻になる、これ以上、細かい桁が測れるのかもよく分からないけど十分速いかと
pynputクリック検知 2024-06-26 19:09:50.128802
関数コール時時刻 2024-06-26 19:09:50.128802
Widgetを追加しながら作っていて、
最初にサンプル的なボタンを押してラベル文字書き変えの
プログラムでは応答性は何の問題にもならないレベルだったので、
まあこんなものかと
最小限だと同じ時刻になる、これ以上、細かい桁が測れるのかもよく分からないけど十分速いかと
pynputクリック検知 2024-06-26 19:09:50.128802
関数コール時時刻 2024-06-26 19:09:50.128802
Widgetを追加しながら作っていて、
最初にサンプル的なボタンを押してラベル文字書き変えの
プログラムでは応答性は何の問題にもならないレベルだったので、
まあこんなものかと
778デフォルトの名無しさん
2024/06/26(水) 19:17:32.22ID:esETAUdE >>777ですけど
あまりに遅いので、cProfileで動作時間を測ってはいて
一番長い関数で138ms、
一方でpynputクリック検知 から 関数コール時時刻 までは1.76s
(14:46:55.787093 - 14:46:54.026669= 1.7604)
もっと遅くなることもある
2秒近くかかる処理なんか作ってないんだけど、さてどうしたものか
あまりに遅いので、cProfileで動作時間を測ってはいて
一番長い関数で138ms、
一方でpynputクリック検知 から 関数コール時時刻 までは1.76s
(14:46:55.787093 - 14:46:54.026669= 1.7604)
もっと遅くなることもある
2秒近くかかる処理なんか作ってないんだけど、さてどうしたものか
779デフォルトの名無しさん
2024/06/26(水) 19:23:16.01ID:esETAUdE 連投すまん
エクセルVBAで作っていたプログラムを練習がてらpython移植してみるんだけど、
VBAでいうDoEventsみたいなものはpython、tkinterには無い、ということでしょうか
ネット検索すると別スレッドで実行しろとか出てくるけど、こっちで考えたほうがいいのかどうか
エクセルVBAで作っていたプログラムを練習がてらpython移植してみるんだけど、
VBAでいうDoEventsみたいなものはpython、tkinterには無い、ということでしょうか
ネット検索すると別スレッドで実行しろとか出てくるけど、こっちで考えたほうがいいのかどうか
780デフォルトの名無しさん
2024/06/26(水) 21:33:53.43ID:UcQAC2Co VBAのDoEventsをどう使っているのか良うわからんが、subprocess.runじゃだめけ?
781デフォルトの名無しさん
2024/06/26(水) 22:20:47.89ID:esETAUdE >>780 ありがとうございます
VBAのDoEventsが実行されると、OSのqueueに溜まっているユーザー操作が実行されます
もし1周0.2s程度のループをネストして100回やらせると約20秒間かかりきりで(応答なし)になるところ、
内側のループの最初(でなくてもいいけど)にDoEventsを入れれば約0.2s毎にユーザ操作の処理が入るので応答なしにはならず、
0.2sくらいならちょっと反応悪いかな、くらいのレスポンスになります(UI処理をやった分だけ、ループの完了は伸びる)
さて、subprocess.runを早速調べてみましたが、OSにやらせたいことをコマンド指定でやらせる、ということでしょうか
OS側で溜まってることがあるのならこのタイミングで済ませてな、なにがあるのかしらんけど、という使い方はできるのでしょうか
もう少し調べてみます
VBAのDoEventsが実行されると、OSのqueueに溜まっているユーザー操作が実行されます
もし1周0.2s程度のループをネストして100回やらせると約20秒間かかりきりで(応答なし)になるところ、
内側のループの最初(でなくてもいいけど)にDoEventsを入れれば約0.2s毎にユーザ操作の処理が入るので応答なしにはならず、
0.2sくらいならちょっと反応悪いかな、くらいのレスポンスになります(UI処理をやった分だけ、ループの完了は伸びる)
さて、subprocess.runを早速調べてみましたが、OSにやらせたいことをコマンド指定でやらせる、ということでしょうか
OS側で溜まってることがあるのならこのタイミングで済ませてな、なにがあるのかしらんけど、という使い方はできるのでしょうか
もう少し調べてみます
782デフォルトの名無しさん
2024/06/26(水) 22:40:40.89ID:hSYD6qWQ783デフォルトの名無しさん
2024/06/26(水) 23:01:35.15ID:esETAUdE >>782
はい、わたしの作ったコードが反応遅いという話をしています
そして最初の質問事項は、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法、でした
これはググって解決しました
以降の話はレスをいただいた方への返信と、DoEvents相当のものがあるかという質問です
エクセルはスレチかと思いますのでエクセルの話を続ける気はありません
引き続き自力でも調べてみます
はい、わたしの作ったコードが反応遅いという話をしています
そして最初の質問事項は、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法、でした
これはググって解決しました
以降の話はレスをいただいた方への返信と、DoEvents相当のものがあるかという質問です
エクセルはスレチかと思いますのでエクセルの話を続ける気はありません
引き続き自力でも調べてみます
784デフォルトの名無しさん
2024/06/26(水) 23:06:33.48ID:p3vHraeo PythonのGUIアプリなんかどのみち自分用ツールにしかならないんだから、ipywidgets やstreamlitで十分だろう
元々スレッドが分離されてるからビジー状態にしても全く問題ないよ
元々スレッドが分離されてるからビジー状態にしても全く問題ないよ
785デフォルトの名無しさん
2024/06/26(水) 23:13:46.30ID:hG8QBVa6 pythonのGILのせいじゃないの?
そこまで反応性が重要ならpythonは向いてない
そこまで反応性が重要ならpythonは向いてない
786デフォルトの名無しさん
2024/06/27(木) 00:43:31.20ID:DskBlp2q 別スレッド化したりしてもtkinterに干渉するとランダムな幅の遅れが出る
たとえばプログレスバーをn秒ちょうどで満たすようなコードは書けない(試行毎にバラバラの誤差が生じる)
多分GILとかブロックの問題で、解決できない。これはpythonとtkinterの仕様
たとえばプログレスバーをn秒ちょうどで満たすようなコードは書けない(試行毎にバラバラの誤差が生じる)
多分GILとかブロックの問題で、解決できない。これはpythonとtkinterの仕様
787デフォルトの名無しさん
2024/06/27(木) 10:04:13.91ID:OTNDZ+yC どんな酷いコード描いてるのか観たいから笑わないからぜひ晒してくれ
788デフォルトの名無しさん
2024/06/27(木) 11:44:11.82ID:THiq2UM5789デフォルトの名無しさん
2024/06/27(木) 15:00:13.36ID:oRm7STy0 最新のpythonだとGILオフにできるらしい
そのバージョンでやってみたら?
そのバージョンでやってみたら?
790デフォルトの名無しさん
2024/06/27(木) 15:06:22.67ID:WK2H4wzF >>783
async使え
懐かしい問題だなw
VB時代とかはbackgroundwokerとか使ってUIスレッドを止めないようにしてたけど今の時代ならasync/awaitでお前さんのループでの処理書けばおk
async使え
懐かしい問題だなw
VB時代とかはbackgroundwokerとか使ってUIスレッドを止めないようにしてたけど今の時代ならasync/awaitでお前さんのループでの処理書けばおk
791デフォルトの名無しさん
2024/06/27(木) 15:21:15.01ID:CgIutZfe こんな人がasyncにするとこんがらかりそう
792デフォルトの名無しさん
2024/06/27(木) 15:40:57.25ID:oRm7STy0 pythonのGUIはマルチスレッドで処理を逃してもGILでロックしまくりで遅くなる
かといって重い処理を動かすとブロックする
async使ってもブロックしたら終わりなのは同じ
詰み
かといって重い処理を動かすとブロックする
async使ってもブロックしたら終わりなのは同じ
詰み
793デフォルトの名無しさん
2024/06/27(木) 17:23:36.34ID:NmEKUmlO CPUバウンドな処理はPythonならマルチプロセスにするのが常識
サブインタープリターも使えるようになったけど本格的に使えるのは3.13から
async使うのはI/Oバウンドな処理
これも常識
サブインタープリターも使えるようになったけど本格的に使えるのは3.13から
async使うのはI/Oバウンドな処理
これも常識
794デフォルトの名無しさん
2024/06/27(木) 17:34:34.83ID:Qbo7b3Vg であればGUI制御が別プロセスになってるソリューションがあんのかな
それかライブラリを叩く粒度を大きくする工夫があるのか
それかライブラリを叩く粒度を大きくする工夫があるのか
795デフォルトの名無しさん
2024/06/27(木) 18:53:48.27ID:WKYIGf9o 言語やOSに関係なく基本的にどのGUIフレームワークでも
アプリケーションのメインスレッドで
UIイベントのハンドリングやUI操作を行うことが前提になってる
だから別プロセスにするのはGUI制御ではなくてUIに関係ないCPUバウンドの処理
つまり基本的にはGUIフレームワークの守備範囲外
アプリケーションのメインスレッドで
UIイベントのハンドリングやUI操作を行うことが前提になってる
だから別プロセスにするのはGUI制御ではなくてUIに関係ないCPUバウンドの処理
つまり基本的にはGUIフレームワークの守備範囲外
796デフォルトの名無しさん
2024/06/27(木) 19:04:32.49ID:F52juMPQ >>791
超初心者用スレで無双か。
超初心者用スレで無双か。
797デフォルトの名無しさん
2024/06/27(木) 19:09:48.41ID:oRm7STy0 >>795
C#はその辺シームレスなんだよね
C#はその辺シームレスなんだよね
798デフォルトの名無しさん
2024/06/27(木) 22:23:02.86ID:/FJYXYiJ だれも.afterは回答しないのか
799デフォルトの名無しさん
2024/06/27(木) 22:39:51.02ID:QXPbo1LF そんなafter使うような真面目な人間は5chに来ない
800デフォルトの名無しさん
2024/06/27(木) 23:54:31.61ID:o3056e9S801デフォルトの名無しさん
2024/06/28(金) 08:28:53.40ID:J/XDPL0h async は失敗だったよな
Pythonでスレッド数の消費が問題になるようなものを運用してる奴なんて極僅かなんだからライブラリがわざわざ対応する訳がない
Javaみたいに世間の流行なんかガン無視してマイクロスレッドに賭けるべきだった
Pythonでスレッド数の消費が問題になるようなものを運用してる奴なんて極僅かなんだからライブラリがわざわざ対応する訳がない
Javaみたいに世間の流行なんかガン無視してマイクロスレッドに賭けるべきだった
802デフォルトの名無しさん
2024/06/28(金) 09:12:53.81ID:5vFH0KpM Web系の要望だろうけど
Twistedさん殺しにいかなくてもとは思った
Twistedさん殺しにいかなくてもとは思った
803デフォルトの名無しさん
2024/06/28(金) 11:24:07.08ID:joeyrg+E Twisted懐かしいな
お世話になりました
お世話になりました
804デフォルトの名無しさん
2024/06/28(金) 14:11:06.71ID:sa0QpqCC805デフォルトの名無しさん
2024/06/28(金) 17:38:58.38ID:IKZAS17P グリーンスレッドのことをマイクロスレッドと呼んでる?
であればasyncのTaskがそれだよ
であればasyncのTaskがそれだよ
806デフォルトの名無しさん
2024/06/28(金) 17:39:52.27ID:bVzHKq+e インターネットからのパッケージの入手ができないクローズドな環境で
Pythonを使ってます
Portable運用ができるのでWinPythonを使っているのですが、
同梱されているものがバージョンにより異なり、
PandasやKerasが入っていたりいなかったりするのがちょっと困ってます
自分が必要なものを導入した状態でポータブル化したPython環境、
みたいなものを作る方法はありますでしょうか
Pythonを使ってます
Portable運用ができるのでWinPythonを使っているのですが、
同梱されているものがバージョンにより異なり、
PandasやKerasが入っていたりいなかったりするのがちょっと困ってます
自分が必要なものを導入した状態でポータブル化したPython環境、
みたいなものを作る方法はありますでしょうか
807デフォルトの名無しさん
2024/06/28(金) 17:44:05.75ID:sa0QpqCC808デフォルトの名無しさん
2024/06/28(金) 18:21:18.71ID:IKZAS17P >>807
それはグリーンスレッドのスケジューラー/エグゼキューターが
内部でOSスレッドのスレッドプールを使ってるという話でしょ
asyncのTaskをOSのスレッドのスレッドプールで回すのと仕組み的は同じでは?
スケジューリング方法の違いやスタックの有無だったり
スケジューラー/エグゼキューターが言語にビルトインされてて
アプリケーションコードで意識しなくてもいいとか
ゴルーチンとの違いはいろいろあるけど
それはマイクロスレッドの定義とは関係ないんじゃない?
それはグリーンスレッドのスケジューラー/エグゼキューターが
内部でOSスレッドのスレッドプールを使ってるという話でしょ
asyncのTaskをOSのスレッドのスレッドプールで回すのと仕組み的は同じでは?
スケジューリング方法の違いやスタックの有無だったり
スケジューラー/エグゼキューターが言語にビルトインされてて
アプリケーションコードで意識しなくてもいいとか
ゴルーチンとの違いはいろいろあるけど
それはマイクロスレッドの定義とは関係ないんじゃない?
809デフォルトの名無しさん
2024/06/28(金) 18:33:47.84ID:sa0QpqCC810デフォルトの名無しさん
2024/06/28(金) 18:50:13.66ID:IKZAS17P811デフォルトの名無しさん
2024/06/28(金) 20:02:09.92ID:TzaR5aOj >806
ありますよ
ありますよ
812デフォルトの名無しさん
2024/06/28(金) 21:12:32.85ID:sa0QpqCC813デフォルトの名無しさん
2024/06/28(金) 21:42:27.28ID:69xrfFOO814デフォルトの名無しさん
2024/06/28(金) 22:10:06.47ID:sa0QpqCC >>813
だから動かないって
ゴルーチンは「計算の主体」(って意味わかる?)
を数百万個作れる
これはユーザースペースでコンテキストスイッチをしてるため
おまけにスタックサイズも動的な上に小さい
全てマシンコードレベルで行われる
当然ロックなど存在しない
これがマイクロスレッド
だから動かないって
ゴルーチンは「計算の主体」(って意味わかる?)
を数百万個作れる
これはユーザースペースでコンテキストスイッチをしてるため
おまけにスタックサイズも動的な上に小さい
全てマシンコードレベルで行われる
当然ロックなど存在しない
これがマイクロスレッド
815デフォルトの名無しさん
2024/06/28(金) 22:15:33.56ID:69xrfFOO816デフォルトの名無しさん
2024/06/28(金) 22:21:09.52ID:sa0QpqCC817デフォルトの名無しさん
2024/06/28(金) 22:35:05.70ID:b9qgRVqH asyncのtaskはどの言語でもJavaScriptからRustに至るまで数万個並行で動作するよ
そのために各言語に導入されたんだよ
そのために各言語に導入されたんだよ
818デフォルトの名無しさん
2024/06/29(土) 03:17:28.84ID:4AUQ0CVf Elixir は、10万もの小プロセスを起動できる。
メモリが大きいと、5千万小プロセスも。
ただし、小プロセスは、OS のプロセスとは異なるものです
スクエニは、Elixirを使っているらしい
Go の並行処理も、mattn の本に書いてあるけど、
C で、OS の100スレッドを起動したら、
CPU 使用率が高く、12秒も掛かったが、
Goで100 goroutine を起動したら、
6スレッドしか起動せず、9秒で済んだ
Goの方が、CPUコアを効率的に使える
とにかく、スレッドを起動したらダメ!
CPUコアや時間の大半が、スレッドの起動処理に使われるから
メモリが大きいと、5千万小プロセスも。
ただし、小プロセスは、OS のプロセスとは異なるものです
スクエニは、Elixirを使っているらしい
Go の並行処理も、mattn の本に書いてあるけど、
C で、OS の100スレッドを起動したら、
CPU 使用率が高く、12秒も掛かったが、
Goで100 goroutine を起動したら、
6スレッドしか起動せず、9秒で済んだ
Goの方が、CPUコアを効率的に使える
とにかく、スレッドを起動したらダメ!
CPUコアや時間の大半が、スレッドの起動処理に使われるから
819デフォルトの名無しさん
2024/06/29(土) 08:36:40.26ID:9/qe2SG9 知ったかぶりして間違ったこと書く
やんわり間違いを指摘される
反省せずに開き直る!
またこの流れ
ググればすぐわかるような間違いなのになんなんだろうな
やんわり間違いを指摘される
反省せずに開き直る!
またこの流れ
ググればすぐわかるような間違いなのになんなんだろうな
820デフォルトの名無しさん
2024/06/29(土) 09:05:37.50ID:C+0SrrrI ElixrはCPU使う処理は得意ではないよ
処理は一瞬で終わるが大量の処理を必要とするようなものが得意
それこそpush通知とかね
Goのようにマシンコードレベルでコンテキストスイッチを実装してるわけではないから
重い処理を書くと途端に負荷が上がる
処理は一瞬で終わるが大量の処理を必要とするようなものが得意
それこそpush通知とかね
Goのようにマシンコードレベルでコンテキストスイッチを実装してるわけではないから
重い処理を書くと途端に負荷が上がる
821デフォルトの名無しさん
2024/06/30(日) 11:06:44.92ID:L3wyoKVN Erlang最強
822デフォルトの名無しさん
2024/07/01(月) 05:47:45.32ID:ppYg1fh2 AIならね
823デフォルトの名無しさん
2024/07/07(日) 10:33:44.66ID:1r2hUTKR pythonで、windows10か11の多画面環境で特定のウインドウのSS撮りたいんだけど
ウインドウハンドル取得してwinAPI叩いてやってるんだけど
メイン画面以外で縦方向に数百pixの座標ズレが出てしまう
こういう書き方しろ、みたいなのご存知の方どなたか…
ウインドウハンドル取得してwinAPI叩いてやってるんだけど
メイン画面以外で縦方向に数百pixの座標ズレが出てしまう
こういう書き方しろ、みたいなのご存知の方どなたか…
824デフォルトの名無しさん
2024/07/07(日) 22:05:47.86ID:5EkJktI1 >>823
それのどこがPythonに関係あると思うの?
何らかPythonならではのところに原因がありそうなのであればその辺の詳しい情報を出してくれないことには分かるわけないし、
そうでないならCのサンプルコードを探した方がいいのでは
それのどこがPythonに関係あると思うの?
何らかPythonならではのところに原因がありそうなのであればその辺の詳しい情報を出してくれないことには分かるわけないし、
そうでないならCのサンプルコードを探した方がいいのでは
825デフォルトの名無しさん
2024/07/07(日) 23:45:08.47ID:y7P/TwV5 pythonで取得したいのだからpythonの話でしょうよ
どうせSS部分pythonのライブラリ使うんだから
(ビットマップオブジェクトとかまでapi叩くんならアレだけど)
どうせSS部分pythonのライブラリ使うんだから
(ビットマップオブジェクトとかまでapi叩くんならアレだけど)
826デフォルトの名無しさん
2024/07/07(日) 23:57:01.73ID:5gDGdFIi 自分で書いたコード提示して聞いた方が回答つくと思うが
827デフォルトの名無しさん
2024/07/08(月) 00:05:50.31ID:+/07puKi Windowsのマルチモニタ環境では、各モニタの座標系が異なるため、座標のズレが発生することがあります。この問題を解決するためには、モニタの相対的な位置と解像度を考慮して座標を変換する必要があります
828デフォルトの名無しさん
2024/07/08(月) 00:06:20.59ID:+/07puKi 1. 各モニタの情報を取得する
2. 指定したウィンドウがどのモニタにあるかを特定する
3. ウィンドウの座標をそのモニタの座標系に変換する
2. 指定したウィンドウがどのモニタにあるかを特定する
3. ウィンドウの座標をそのモニタの座標系に変換する
829デフォルトの名無しさん
2024/07/08(月) 08:43:58.61ID:XK4Xq7P1 ういんどうずはクソなので超めんどくせえんだわ
おれはウインドウ内のみ欲しくて、その描画myW, myHが分かってる場合しか書いたことないけど
rectたちから計算できるべ多分
DWMWA_EXTENDED_FRAME_BOUNDS = 9
r_rect = ctypes.wintypes.RECT()
ctypes.windll.dwmapi.DwmGetWindowAttribute(hwnd, DWMWA〜, ctypes.byref(rect), ctypes.sizeof(rect))
_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
if _style & win32con.WS_THICKFRAME:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYFRAME)
else:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYBORDER)
win_border_size *= 2
c_rect = win32gui.GetClientRect(hwnd)
w_rect = win32gui.GetWindowRect(hwnd)
おれはウインドウ内のみ欲しくて、その描画myW, myHが分かってる場合しか書いたことないけど
rectたちから計算できるべ多分
DWMWA_EXTENDED_FRAME_BOUNDS = 9
r_rect = ctypes.wintypes.RECT()
ctypes.windll.dwmapi.DwmGetWindowAttribute(hwnd, DWMWA〜, ctypes.byref(rect), ctypes.sizeof(rect))
_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
if _style & win32con.WS_THICKFRAME:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYFRAME)
else:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYBORDER)
win_border_size *= 2
c_rect = win32gui.GetClientRect(hwnd)
w_rect = win32gui.GetWindowRect(hwnd)
830デフォルトの名無しさん
2024/07/08(月) 08:45:47.33ID:XK4Xq7P1 r_height = r_rect.bottom - r_rect.top
c_width = c_rect[2] - c_rect[0]
c_height = c_rect[3] - c_rect[1]
w_width = w_rect[2] - w_rect[0]
src_pos_x = (w_width - c_width) // 2
titlebar_height = r_height - c_height - win_border_size
hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, myW, myH)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_x, titlebar_height), win32con.SRCCOPY)
bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)
im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1)
win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(hwnd, hwndDC)
高DPI対応でこれ入れてるとずれるからそれは知らん
ctypes.windll.shcore.SetProcessDpiAwareness(1)
c_width = c_rect[2] - c_rect[0]
c_height = c_rect[3] - c_rect[1]
w_width = w_rect[2] - w_rect[0]
src_pos_x = (w_width - c_width) // 2
titlebar_height = r_height - c_height - win_border_size
hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, myW, myH)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_x, titlebar_height), win32con.SRCCOPY)
bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)
im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1)
win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(hwnd, hwndDC)
高DPI対応でこれ入れてるとずれるからそれは知らん
ctypes.windll.shcore.SetProcessDpiAwareness(1)
831デフォルトの名無しさん
2024/07/08(月) 08:48:31.66ID:XK4Xq7P1 訂正
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_pos_x, titlebar_height), win32con.SRCCOPY)
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_pos_x, titlebar_height), win32con.SRCCOPY)
832デフォルトの名無しさん
2024/07/08(月) 21:09:08.76ID:s8AzJdEo833デフォルトの名無しさん
2024/07/09(火) 01:02:05.27ID:qs1jvts2 posXの計算式どういう理屈でそれなんだろう…
総当たりで試したのかな
総当たりで試したのかな
834デフォルトの名無しさん
2024/07/09(火) 17:53:08.61ID:ycuYR4Xv 質問失礼します
VersionError: The client version 0.52.3492 is too old. Please update to the latest package on PyPi:
と出てきました、調べたところThis library requires Python 3.8-3.12.と出てきたのですが
自分の使用バージョンはPython 3.10
pipも最新の24に更新済み、他にどこを直せばいいのでしょう
VersionError: The client version 0.52.3492 is too old. Please update to the latest package on PyPi:
と出てきました、調べたところThis library requires Python 3.8-3.12.と出てきたのですが
自分の使用バージョンはPython 3.10
pipも最新の24に更新済み、他にどこを直せばいいのでしょう
835デフォルトの名無しさん
2024/07/09(火) 18:57:30.17ID:JSIA10ur すみませんVSCodeのシンタックスハイライトについて質問です
シンタックスハイライトをPython仕様にしたいと思うのですがこんな感じで変えられますか?
とりあえず今のままではメソッドなのかクラスなのか変数なのか全くわからないのでどうもできません
https://i.imgur.com/l8UEuMt.png
シンタックスハイライトをPython仕様にしたいと思うのですがこんな感じで変えられますか?
とりあえず今のままではメソッドなのかクラスなのか変数なのか全くわからないのでどうもできません
https://i.imgur.com/l8UEuMt.png
836デフォルトの名無しさん
2024/07/09(火) 19:06:47.56ID:w695tFt+ >>834
PyPiが古いんだろ
PyPiが古いんだろ
837デフォルトの名無しさん
2024/07/09(火) 19:15:18.18ID:UDSzeDWm とりあえずPython勉強してPython3エンジニア基礎試験に合格して、次の実践の勉強してるがつまらん
何か作った方が面白いが作りたいものもない
何か作った方が面白いが作りたいものもない
838デフォルトの名無しさん
2024/07/09(火) 19:16:34.21ID:ycuYR4Xv839デフォルトの名無しさん
2024/07/09(火) 19:42:17.96ID:w695tFt+840デフォルトの名無しさん
2024/07/09(火) 20:05:31.88ID:qs1jvts2 >>835
app = App()
app.func()
変数 = クラス
関数
色がないと判断ができない、というのは論外
小文字、大文字、ドットアクセスで見ろ
強いて言えば
foo.bar と書かれているときbarがメソッドかプロパティかわかりません という話ならまぁ…
まあでもシンタックスハイライトってjsonで設定してあって弄れるから好きにやりな
app = App()
app.func()
変数 = クラス
関数
色がないと判断ができない、というのは論外
小文字、大文字、ドットアクセスで見ろ
強いて言えば
foo.bar と書かれているときbarがメソッドかプロパティかわかりません という話ならまぁ…
まあでもシンタックスハイライトってjsonで設定してあって弄れるから好きにやりな
841デフォルトの名無しさん
2024/07/09(火) 20:15:12.34ID:ycuYR4Xv842デフォルトの名無しさん
2024/07/09(火) 20:18:31.83ID:qs1jvts2 AIとかをやろうとして、言われるがままに色んなものをガンガン入れてしまってる気がする
843デフォルトの名無しさん
2024/07/09(火) 20:27:31.33ID:KaCb5RY5844デフォルトの名無しさん
2024/07/09(火) 23:33:54.51ID:AsZE7u+u >>835
Class が緑になってしまうけどこんな感じでいい?
これでいいなら拡張機能の「Python」を入れればできるけども
https://i.imgur.com/yfHsYvK.png
あと VSCode の配色テーマを Dark(Visual Studio) にしていると
拡張機能のシンタックスハイライトが効かなくなるらしい
https://qiita.com/ryutarom128/items/d52ec3db2d11b79599da
Class が緑になってしまうけどこんな感じでいい?
これでいいなら拡張機能の「Python」を入れればできるけども
https://i.imgur.com/yfHsYvK.png
あと VSCode の配色テーマを Dark(Visual Studio) にしていると
拡張機能のシンタックスハイライトが効かなくなるらしい
https://qiita.com/ryutarom128/items/d52ec3db2d11b79599da
845デフォルトの名無しさん
2024/07/10(水) 00:07:36.42ID:3j7FzYnK 色々調べた結果python側の問題とわかったので確認
python --version→python3.10
python3 --version→pythonとしかで来なく
python3.10がちゃんとインストールされてるのかpython3.10 --versionを実行した結果、python3.10℃は、内部コマンドまたは 部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていませ ん。と出てきました
とりあえずアンインストール後再インストールしてみますが
1月くらいまで何事もなく使えてたのにインストールされてませんみたいになることってよくあるのですか?
python --version→python3.10
python3 --version→pythonとしかで来なく
python3.10がちゃんとインストールされてるのかpython3.10 --versionを実行した結果、python3.10℃は、内部コマンドまたは 部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていませ ん。と出てきました
とりあえずアンインストール後再インストールしてみますが
1月くらいまで何事もなく使えてたのにインストールされてませんみたいになることってよくあるのですか?
846デフォルトの名無しさん
2024/07/10(水) 00:54:56.26ID:B0lLeabB 最新のpythonインストールしたんだろ
それで昔の環境が壊れたとかでおかしくなる
それで昔の環境が壊れたとかでおかしくなる
847デフォルトの名無しさん
2024/07/10(水) 01:07:23.88ID:EF6Y7HgP >>845
python3 --versionでPythonと表示されるのはwinの設定→アプリ→アプリ実行エイリアスがオンになってるから。これはMSストア版python用
公式版python3.10をインストールしてもpython3.10という実行ファイルが存在しないのは正常
python3 --versionでPythonと表示されるのはwinの設定→アプリ→アプリ実行エイリアスがオンになってるから。これはMSストア版python用
公式版python3.10をインストールしてもpython3.10という実行ファイルが存在しないのは正常
848デフォルトの名無しさん
2024/07/10(水) 01:59:30.87ID:5rHX5/PL 試行錯誤する前に拡張の説明や設定項目を確認しないのなんで
849デフォルトの名無しさん
2024/07/10(水) 02:34:41.59ID:3j7FzYnK850デフォルトの名無しさん
2024/07/10(水) 03:33:20.73ID:JKR4u2JY modal要求バージョンより新しいpython入ってるせいで詰まってんじゃないの
851デフォルトの名無しさん
2024/07/10(水) 08:41:03.90ID:0/GvnarD852デフォルトの名無しさん
2024/07/10(水) 15:30:21.08ID:For1CkV4 だいぶ初心者だと思います
ttk.Treeviewのselection_setに関する質問なんですが
まず、やろうとしている事はビューアで
Treeview1 サイトから取得してきたWebページ一覧 選ぶと情報ダウンロード
Treeview2 ページの情報をダウンロードしたサイト一覧(実態としてはダウンロードフォルダにあるフォルダ一覧)
Treeview3 Treeview2で選んだフォルダ内に保存されている個別のページ情報一覧(実態としてはフォルダ内テキスト一覧)
で「Treeview2でフォルダを選び、Treeview3でファイルを選ぶと、ttk.Textに情報表示」はうまくいってます
この時
Treeview1に<<TreeviewSelect>>をbindし、ダウンロードした後Treeview2の内容を消去&フォルダ一覧再取得&表示する関数などを仕込んでいます(後述)
Treeview2も<<TreeviewSelect>>をbindし、Treeview3の内容を消去&選んだフォルダ(Treeview2)の中身を取得&(Treeview3に)表示する関数を仕込んでいます
(Treeview3も<<TreeviewSelect>>をbindし、ttk.Textの内容を更新する関数を仕込んでいますが、多分今回の質問には関係ないです)
問題はTreeview1から選んだ時で、選んだ時にダウンロードするだけでなく、落としたものを自動的にttk.Textに表示しようとしています
これもttk.Textの表示だけなら問題ないのですが、Treeview2とTreeview3も今ダウンロードした項目が自動的に選ばれた状態にしたいのですが、Treeview3だけうまくいきません
エラーメッセージすら出る事なく、何も選択されません(Treeview2は正常に選択されています)
長いのでレス分けます
ttk.Treeviewのselection_setに関する質問なんですが
まず、やろうとしている事はビューアで
Treeview1 サイトから取得してきたWebページ一覧 選ぶと情報ダウンロード
Treeview2 ページの情報をダウンロードしたサイト一覧(実態としてはダウンロードフォルダにあるフォルダ一覧)
Treeview3 Treeview2で選んだフォルダ内に保存されている個別のページ情報一覧(実態としてはフォルダ内テキスト一覧)
で「Treeview2でフォルダを選び、Treeview3でファイルを選ぶと、ttk.Textに情報表示」はうまくいってます
この時
Treeview1に<<TreeviewSelect>>をbindし、ダウンロードした後Treeview2の内容を消去&フォルダ一覧再取得&表示する関数などを仕込んでいます(後述)
Treeview2も<<TreeviewSelect>>をbindし、Treeview3の内容を消去&選んだフォルダ(Treeview2)の中身を取得&(Treeview3に)表示する関数を仕込んでいます
(Treeview3も<<TreeviewSelect>>をbindし、ttk.Textの内容を更新する関数を仕込んでいますが、多分今回の質問には関係ないです)
問題はTreeview1から選んだ時で、選んだ時にダウンロードするだけでなく、落としたものを自動的にttk.Textに表示しようとしています
これもttk.Textの表示だけなら問題ないのですが、Treeview2とTreeview3も今ダウンロードした項目が自動的に選ばれた状態にしたいのですが、Treeview3だけうまくいきません
エラーメッセージすら出る事なく、何も選択されません(Treeview2は正常に選択されています)
長いのでレス分けます
853デフォルトの名無しさん
2024/07/10(水) 15:30:59.95ID:For1CkV4 >>852続き
原因はおそらくですが、Treeview1にbindした関数内でTreeview2の項目を選択した時、自動的にTreeview2にbindされた関数も呼び出されますが
これの処理がTreeview1にbindした関数の後で実行されるせいで、最後にTreeview3がリフレッシュされているのだと思います
Treeview1の処理中に他のTreeviewを選んだ時「Treeview1の処理中断→Treeview2の処理→Treeview1の処理再開」になると思い込んでコードを書いていたのですが
たぶん実際には「Treeview1の処理完走後、トリガーされたTreeview2の処理」になっているのかなと思っています(テスト用のprintの表示順序などから推測)
最後にTreeview3もちゃんと選択されるようにするには、どうすればいいでしょうか?
Treeview1の処理中、Treeview2を一時的にunbindも試してみましたが、確かにunbindして必要な処理を補完すればちゃんと動くので原因は間違ってなさそうですが
再bindをTreeview1の処理中にしてしまうと、処理後に結局トリガーしてしまって無意味でした
原因はおそらくですが、Treeview1にbindした関数内でTreeview2の項目を選択した時、自動的にTreeview2にbindされた関数も呼び出されますが
これの処理がTreeview1にbindした関数の後で実行されるせいで、最後にTreeview3がリフレッシュされているのだと思います
Treeview1の処理中に他のTreeviewを選んだ時「Treeview1の処理中断→Treeview2の処理→Treeview1の処理再開」になると思い込んでコードを書いていたのですが
たぶん実際には「Treeview1の処理完走後、トリガーされたTreeview2の処理」になっているのかなと思っています(テスト用のprintの表示順序などから推測)
最後にTreeview3もちゃんと選択されるようにするには、どうすればいいでしょうか?
Treeview1の処理中、Treeview2を一時的にunbindも試してみましたが、確かにunbindして必要な処理を補完すればちゃんと動くので原因は間違ってなさそうですが
再bindをTreeview1の処理中にしてしまうと、処理後に結局トリガーしてしまって無意味でした
854デフォルトの名無しさん
2024/07/10(水) 17:05:01.94ID:iit7nof0 ボタンは1回押したらロックするか
ブロック機構入れないと
連打したり、別のボタン押したりしたときに収拾つかなくなるで
たとえば
bind関数内の最初に、if treeviewselected:returnみたいなの書いて排他動作にするとかさ
ブロック機構入れないと
連打したり、別のボタン押したりしたときに収拾つかなくなるで
たとえば
bind関数内の最初に、if treeviewselected:returnみたいなの書いて排他動作にするとかさ
855デフォルトの名無しさん
2024/07/10(水) 18:37:27.41ID:For1CkV4 >>854
丁度それをやってみて正常に動いたところでした、ありがとうございます
やはりその辺の処理になるんですかね
ロック機構、確かに要りますね
趣味で場当たり的に作ってると、そういう構造的なノウハウとかは中々身につかなさそうですね……
丁度それをやってみて正常に動いたところでした、ありがとうございます
やはりその辺の処理になるんですかね
ロック機構、確かに要りますね
趣味で場当たり的に作ってると、そういう構造的なノウハウとかは中々身につかなさそうですね……
856デフォルトの名無しさん
2024/07/10(水) 21:14:08.65ID:8aePid6X GUIはGUI用のノウハウあるで、書きまくってたら身についていくよ
ロジックと表示系分離するとかもそうだしさ
ロジックと表示系分離するとかもそうだしさ
857デフォルトの名無しさん
2024/07/11(木) 00:14:02.11ID:gnKs0VpL pythonでpyenv pipx poetry使えるレンタルlinuxサーバ知らん??
858デフォルトの名無しさん
2024/07/12(金) 03:05:52.22ID:Fv9K4MWW whisperを使ってみようと思ったんですが、次のコードでどうあがいても
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
import whisper
with open("./test.txt", 'r', encoding='utf-8') as file:
content = file.read()
print(content)
uri = "./test.mp3"
model = whisper.load_model("small")
result = model.transcribe(uri, verbose=True, fp16=False, language="ja")
test.txtはちゃんと読み込まれて表示されるのに
resultのところでどうしてもファイルが見つからないと言われます
audio = whisper.load_audio(file=uri)
をresultの前に噛ませたりしても、ここで見つからないと言われます
絶対パスにしてもwavとかoggとか試しても無駄だし、拡張子消してももちろん無駄です
ファイルの位置を変えたり、全然違う場所の全然違う音声ファイルを読み込もうとしても無駄です
pipしなおしてもPC再起動しても無駄です
一体何が悪いのでしょうか
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
import whisper
with open("./test.txt", 'r', encoding='utf-8') as file:
content = file.read()
print(content)
uri = "./test.mp3"
model = whisper.load_model("small")
result = model.transcribe(uri, verbose=True, fp16=False, language="ja")
test.txtはちゃんと読み込まれて表示されるのに
resultのところでどうしてもファイルが見つからないと言われます
audio = whisper.load_audio(file=uri)
をresultの前に噛ませたりしても、ここで見つからないと言われます
絶対パスにしてもwavとかoggとか試しても無駄だし、拡張子消してももちろん無駄です
ファイルの位置を変えたり、全然違う場所の全然違う音声ファイルを読み込もうとしても無駄です
pipしなおしてもPC再起動しても無駄です
一体何が悪いのでしょうか
859デフォルトの名無しさん
2024/07/12(金) 03:18:10.13ID:6z6Lg9Zs そもそもresult前に読んだパス認識してんの?
path.existsみたいなのしなはれ
path.existsみたいなのしなはれ
860デフォルトの名無しさん
2024/07/12(金) 03:55:38.40ID:Fv9K4MWW >>859
とりあえずこれを直前に挟んでみましたがTrueでした
print(os.path.exists(uri))
ダミーにめちゃくちゃ入れたらもちろんFalseなので、result以外はちゃんと動いてるようなんですが
とりあえずこれを直前に挟んでみましたがTrueでした
print(os.path.exists(uri))
ダミーにめちゃくちゃ入れたらもちろんFalseなので、result以外はちゃんと動いてるようなんですが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 【映画】『クレヨンしんちゃん』 中国で公開延期 対日報復、エンタメに波及 [冬月記者★]
- Xのネトウヨは大体高齢独身。40過ぎて独身だと例外なく狂うって本当だったんだなと思う [805596214]
- 生活保護だけど30万円のPCの椅子買おうか迷ってる
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 女の子に生まれ変わったらやりたいこと🍓🍫💄❤ [856698234]
- ウッドデッキで調子こいてたやついたじゃん
