Pythonのお勉強 Part72

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 03c5-hEBs)
垢版 |
2023/12/27(水) 15:42:25.63ID:sVIMH2iW0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
 ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
※前スレ
Pythonのお勉強 Part71
https://mevius.5ch.net/test/read.cgi/tech/1695168821/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
663デフォルトの名無しさん (ワッチョイ 5f0b-Ywb+)
垢版 |
2024/04/13(土) 12:29:48.04ID:VVOzvZda0
brew経由でアップデートしたら、急に仮想環境じゃないとパッケージをインストールできないとか
2024/04/13(土) 13:42:10.08ID:IbaNpn9p0
公式ドキュメント丸暗記してくれればいいよ
2024/04/13(土) 13:57:47.85ID:xM5gelxk0
>>663
brewで直接導入できるpythonは他パッケージも使うものだから
システム部分をカスタマイズする使い方は避けたほうがいい
やるならpyenv等で独自に導入する
666デフォルトの名無しさん (ワッチョイ 5f0b-Ywb+)
垢版 |
2024/04/13(土) 14:29:33.39ID:VVOzvZda0
>>665
3.11までは問題なかったんだけど PEP 668 とかいうので急に。
anacondaもプラン登録とかめんどくさそうなので、pyenvが良いですかね。色々乱立しすぎて辛い。
2024/04/13(土) 15:57:22.40ID:pblREcz10
pythonの環境構築は色々ありすぎるな(´・ω・`)
668デフォルトの名無しさん (ワッチョイ 5f0b-Ywb+)
垢版 |
2024/04/13(土) 16:27:08.52ID:VVOzvZda0
嫌々pyenvにしたら、普通には使えるもののjupyterからは!which pythonでpyenvのものが参照されるのに、python自体はmacのdevtoolの3.9を参照してたり、まじで意味がわからない。macもpythonもセキュアにしようと思ってるのか厳しくなり過ぎじゃないの。
もう嫌になってシステムのpythonにインストールしようとしたら、インストールできないパッケージもあり頓挫。環境構築がつらすぎる。
2024/04/13(土) 16:42:47.90ID:xM5gelxk0
>>668
JupyterでつかうPythonはJupyterのカーネル設定で行う
!はシェルの結果なので関係ない
そこは昔から変わってない
670デフォルトの名無しさん (ワッチョイ 5f54-Ywb+)
垢版 |
2024/04/13(土) 18:37:09.27ID:VVOzvZda0
jupyterのカーネル設定で、なぜか新しいのが認識されない。消した古いのpyenvを延々に参照したりしてる。minicondaもパスが自動で通ったり通らなかったり、プログラミング以外の部分があまりに辛すぎ。こりゃ大学もcolabになるわ。。。
2024/04/13(土) 18:43:56.03ID:TRNT6FLv0
環境なんか分けない
全部最新で問題ない
2024/04/13(土) 18:49:16.41ID:WqUEYZDT0
>>670
docker使えよ
なんで生で使ってるんだ
673デフォルトの名無しさん (ワッチョイ b768-5HvV)
垢版 |
2024/04/14(日) 04:36:18.03ID:Idu7Ozn00
儲だからさ
674デフォルトの名無しさん (ワッチョイ 7714-V1kM)
垢版 |
2024/04/14(日) 08:07:21.16ID:vOFIHqRM0
公式のインストーラーとvenvが一番楽だろ
2024/04/14(日) 16:04:46.07ID:Jvefqylq0
venvも現在のpython環境との依存があるから大して便利でもない
2024/04/14(日) 16:20:39.38ID:F4h+PTLHM
バージョン指定できるだろ
2024/04/14(日) 16:28:30.57ID:Jvefqylq0
pythonの環境作るのにpythonが必要な時点でナンセンスなんだよ
2024/04/14(日) 17:24:43.74ID:ngERIiau0
pythonのバージョンをとっかえひっかえして使いたい人にとってはそうなのかもしれんが
俺はあんまり気にならんな
2024/04/14(日) 17:50:46.64ID:MwYwq07Q0
どういう時に新しいと困るの?
2024/04/14(日) 18:07:17.15ID:EpHEK9NBa
Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる

echo $(anyenv root)
ただし、$ANYENV_ROOT は定義されていない
/home/ユーザー名/.anyenv

echo $(rbenv root)
echo "$RBENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv

echo $(nodenv root)
echo "$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/nodenv

システムに最初から入っているバージョンをいじってはならない!
他のアプリがシステムバージョンを使っているから、
それを変更すると、多くのアプリが動かなくなる

だから開発環境は、自分だけのユーザー環境以下の
/home/ユーザー名/.anyenv 以下に入れる

システムバージョンは、
file `which python`, file `which python2`, file `which python3` で確認できる。
/usr/bin/python, /usr/bin/python2, /usr/bin/python3 など
2024/04/14(日) 20:45:44.17ID:QrEB0Oge0
pythonの仮想環境とやらがよくわからない
こいつら裏で何してんの?
2024/04/14(日) 20:49:36.60ID:Jvefqylq0
単に特定のディレクトリに別のpythonをインストールしてるだけ
使う時は環境変数を切り替えてそのディレクトリを参照するようにしてる
683デフォルトの名無しさん (ワッチョイ 9f8e-Gdqw)
垢版 |
2024/04/15(月) 03:02:37.70ID:GNSnE1Ve0
その程度ならDockerを使うまでねえな
2024/04/15(月) 03:56:02.22ID:FCLpude10
>>680
pythonは3.8、3.9、3.10、3.11と無限にバイナリを変える方針になったから
もうそれじゃ無理なんよ
完全に破綻する
685デフォルトの名無しさん (ワッチョイ ffcb-1A5Z)
垢版 |
2024/04/15(月) 07:36:43.94ID:PoKx/si/0
>>646
読みは出来るが書きは難しいぞ
2024/04/15(月) 08:10:03.95ID:06infIPC0
>>684
サポート切れとかでもない限りユーザーが必要なバージョンを使い続ける形でなんの問題もない
2024/04/15(月) 09:13:55.14ID:KAzBYHuT0
読みができるなら、自動翻訳が正しいかチェックできるので、書けるのと同じ
2024/04/15(月) 13:36:12.33ID:FCLpude10
>>686
サポートがすぐ切れるのがpythonのモジュールの特徴
689デフォルトの名無しさん (ワッチョイ 9fb9-SYlu)
垢版 |
2024/04/15(月) 15:10:16.44ID:FxizxKZc0
>>688
例えば?
2024/04/16(火) 00:08:01.02ID:PDSolQ5u0
パッケージなら自分が困るような不具合が見つかるかauditで指摘が上がるまで使い続けるかな
一生懸命最新バージョンを追いかけるモチベもないし
691デフォルトの名無しさん (ワッチョイ 9fb6-0iGJ)
垢版 |
2024/04/17(水) 05:35:49.48ID:w7jXmCDp0
そんなマイナーパッケージを使う方が悪いし、そもそもPythonとは関係ないだろw
2024/04/17(水) 11:07:36.28ID:oiqb0p+K0
普通に関係あるでしょ

Pythonのライブラリは古いバージョン対するサポート期間よりも
新しいバージョンへの対応がめちゃくちゃ遅いほうが問題
メジャーなライブラリでも3.12対応してないものまだまだある
693デフォルトの名無しさん (ワッチョイ d7da-SYlu)
垢版 |
2024/04/17(水) 11:16:42.46ID:anDoJWcI0
>>692
>普通に関係あるでしょ
例えば?
694デフォルトの名無しさん (ワッチョイ d70b-FtXC)
垢版 |
2024/04/17(水) 11:47:07.16ID:Mhy5FviN0
どんなプログラミング言語でもあることだし、使いたいライブラリに合わせてPythonのバージョンを選ぶくらい普通のことでは
JavaみたいにEOLまでの期間がめちゃくちゃ短いならわかるけど、
3.9ですらあと1年以上あるでしょ
そもそもOSSにそこまで期待してもねえ
金払って作らせてるならともかく
3.12を使わなければならない理由があるの?あるのだとしたら自分で直すぐらいの気概でいる必要があるのでは
695デフォルトの名無しさん (ワッチョイ 9f89-C2uO)
垢版 |
2024/04/17(水) 14:43:57.59ID:l+WaPe/x0
pythonで顔を検出してモザイクかけるのができるのなら
陰部に自動でモザイクかけることもできる?
というかそういうソフトってあるの?
696デフォルトの名無しさん (ワッチョイ 777c-WF48)
垢版 |
2024/04/17(水) 14:56:00.57ID:HjKtRqgu0
>>695
陰部がそのままなら難しくは無い
だけどオモチャだったりプレイだったりすると判定が難しい

まあ顔もそうでしょ
パーティグッズみたいなの付けてたら判定難しいのと同じ
2024/04/17(水) 16:21:55.20ID:2IBcVhjM0
>>694
メジャーなライブラリが言語の新バージョンに対応するのに
半年〜1年かかるのが常態化してるのはPythonだけ
Java、C#、Go、Swift、Ruby、JavaScript、PHPあたりではなかなか見ない

3.9は去年の10月でSPEC 0のサポートが切れてるから特別な事情がない限り選択肢としては無い
Numpyとかでも既に落とされてる

言語の公式サポートは5年と長いけど
ライブラリの関係で実質サポートは2年〜2年半程度と短いのが実状
698デフォルトの名無しさん (ワッチョイ 9f89-C2uO)
垢版 |
2024/04/17(水) 16:41:16.73ID:l+WaPe/x0
>>696
プレイは難しいか…
Inpaint-Anythingみたいなので頑張るしかないのな…
手動はもう嫌だ…
699デフォルトの名無しさん (ブーイモ MM8f-1A5Z)
垢版 |
2024/04/17(水) 18:11:24.73ID:03ECfOBvM
>>694
JavaよりPythonのほうがランタイムのEOL短くね?
来年のEOLでどう更新するか既に頭痛いぞ
700デフォルトの名無しさん (ワッチョイ 777c-WF48)
垢版 |
2024/04/17(水) 18:26:16.61ID:HjKtRqgu0
お前らそんな事気にしてるのか?

客先でWindows95でVB5で動くシステムが現役で今でもメンテと追加機能開発が普通に有るんだぞ
701デフォルトの名無しさん (ワッチョイ 777c-WF48)
垢版 |
2024/04/17(水) 18:27:45.12ID:HjKtRqgu0
ちなみその客は大手チェーン店で件のシステムがインスコされてるPCが5万台だぞ
2024/04/17(水) 18:33:58.48ID:uf7XVbek0
サバ言うなこのヤロー
2024/04/17(水) 18:43:47.34ID:O0zLY4aF0
サポート切れOS使い続けるとかヤバい会社だな
2024/04/17(水) 18:47:05.38ID:s7iaR2coa
クローズドだからいいんじゃね
本当にクローズドならな
2024/04/17(水) 18:49:19.36ID:O0zLY4aF0
ハード壊れたら替えが効かなくね?
2024/04/17(水) 18:50:11.63ID:ZwjlmTP40
FC98がいまだに使われてるこんな世の中じゃ~(´・ω・`)
2024/04/17(水) 18:53:56.43ID:O0zLY4aF0
ファミリーコンピュータか
2024/04/17(水) 18:58:29.65ID:uf7XVbek0
ベーシックマスターLv2が半導体製造装置の制御に使われてるの見た時はびびった
2024/04/17(水) 22:30:39.86ID:r05765r10
今のpcのスペックにwin95でSSDとかなら胸が熱くなるなw
30年前のOS動いてるのを観測するとちょっともう1回見たくなる
710デフォルトの名無しさん (ワッチョイ 777c-WF48)
垢版 |
2024/04/18(木) 06:15:43.01ID:9mBgHjTU0
大きな駅とかイベント会場に設置してある電子看板とか偶にシステムエラーでデスクトップ画面見えるけどWindows95とか多いからね
2024/04/18(木) 07:31:12.82ID:jzqsJQ8q0
嘘松乙
712デフォルトの名無しさん (ワッチョイ 9f89-q2Vu)
垢版 |
2024/04/18(木) 11:23:16.44ID:mnftgO6U0
顔検出のやつでこういうの見つけたんだけど
https://huggingface.co/Bingsu/adetailer

import cv2
from PIL import Image

img = "https://farm5.staticflickr.com/4139/4887614566_6b57ec4422_z.jpg";
output = model(img)
pred = output[0].plot()
pred = cv2.cvtColor(pred, cv2.COLOR_BGR2RGB)
pred = Image.fromarray(pred)
pred

これをどういじれば赤枠内をモザイク処理させることができる?
713デフォルトの名無しさん (ワッチョイ 777c-WF48)
垢版 |
2024/04/18(木) 11:56:44.51ID:9mBgHjTU0
デジタルサイネージ Windowsでググると面白いな
95 98 MEでまだ動いてるんだな
2024/04/18(木) 16:04:34.98ID:wmPSgIme0
パチンコ屋のパネルはなんでぶっ壊れても直さないんだろうな
2024/04/18(木) 19:22:53.20ID:BEill3hf0
Windows95は起動してるだけで何もしてなくても1週間で落ちる(面倒なので原因は追求しなかった)
2024/04/18(木) 22:21:46.29ID:QMmLcupe0
>>712
ここらへん使えばいいんじゃない

https://docs.ultralytics.com/modes/predict/#boxes
717デフォルトの名無しさん (ワッチョイ 9f89-q2Vu)
垢版 |
2024/04/19(金) 12:25:22.62ID:E/UPL6z30
>>716
やってみる
718デフォルトの名無しさん (ワッチョイ fd68-BZjc)
垢版 |
2024/04/22(月) 03:09:31.20ID:W6CuBV210
>>694
専ブラ動かすのにしか使ってないから実情知らんけど
JavaはLTS選べば長い方になるんじゃね
今からなら17
>>707
FC知らないのかガキめ
719デフォルトの名無しさん (ワッチョイ a779-208W)
垢版 |
2024/04/28(日) 21:50:25.97ID:zlR73q8o0
スレ立てあらしスクリプト対抗age
2024/04/28(日) 22:42:33.38ID:V8geRx0h0
2chのシステムは今でもperlらしい
2024/05/03(金) 08:05:13.76ID:KC1xrygK0
if a < b:
 flag = True
else:
 flag = False


flag = a < b
と書ける
圧倒的にすっきりするけど、なんか頭に入ってこなくなる
どっちがいいんだろ
722デフォルトの名無しさん (ワッチョイ c77c-mYO8)
垢版 |
2024/05/03(金) 08:15:24.69ID:+XfJbNI80
別にどっちでも良い
細かいことを気にし過ぎ

ただし頭に入ってこないってのは不味い
自分は書かなくても書かれてるコードを理解して頭に入る様にする必要はある
2024/05/03(金) 09:02:12.97ID:KC1xrygK0
理解できない訳はないけど
0.1秒で判るか0.5秒かかるかという話
2024/05/03(金) 09:45:57.92ID:+Wi8ddag0
>>721
普通はどっちもダメ
単純な比較結果をフラグ化したりしない
2024/05/03(金) 09:47:16.56ID:KC1xrygK0
そんなこと言ったらflagという名前も具体的でないのでNG
726デフォルトの名無しさん (ワッチョイ 7f2a-KT8O)
垢版 |
2024/05/03(金) 09:55:16.59ID:NFxQvANq0
>>721
現実に前者を書くことは無いような気がする。大抵は、

if a < b:
 flag = 'hinomaru'
else:
 flag = 'union jack'

みたいな使い方でしょ。
a < b の評価値を保存したい場合は、自然と後者になるように思う。
2024/05/03(金) 10:18:26.60ID:2ylfI8qb0
filled = bool(count == limit)
みたいにbool()使ってたな
Pythonのand/orはbool返さない場合あるし
728デフォルトの名無しさん (ワッチョイ 27ca-UlK4)
垢版 |
2024/05/03(金) 10:44:25.52ID:00No5FFk0
霊感的には、それは、
(flag = a) < b と解釈させたら、
flagがtrueかfalseにより動作が
違くなるような気がする。というか
flag ← (a < b) って感じで
ゼッタイ何時でもπソンは解釈するのだろうか。
729デフォルトの名無しさん (ワッチョイ c77c-mYO8)
垢版 |
2024/05/03(金) 11:24:56.50ID:+XfJbNI80
お前はスタックを理解しろw
2024/05/03(金) 11:25:32.60ID:qpubnZou0
flag = True if a < b else False
flagの代入以外に副作用ないならまずこう書くけど
flag = a < b
でいいやんとなる
2024/05/03(金) 12:16:12.11ID:zLu7Yc6Y0
>>728
>(flag = a) < b と解釈させたら
Pythonの場合はflag=aがstatementで値を返さないのでそういう解釈をさせることができない
(flag=a)だけでもassignment statementの文法に反してるからエラー

(flag := a > b)と(flag :=a) > bでflagの値が変わる
前者が後者のように評価されないのは演算子の優先順位で決まってるから
2024/05/03(金) 12:35:34.78ID:zLu7Yc6Y0
>>726
>a < b の評価値を保存したい場合は、自然と後者になるように思う。
boolを返すa < b を保存するのが妥当な場合ってどんな用途を想定してるの?

・a < bの処理にそれなりの時間がかかる
・a < bの結果を繰り返し使う
・比較演算子がbool値を返す
・関数ではなく演算子を使うのが妥当

俺は↑これを全部満たすような用途は思いつかない
いずれにしろflagを使うほうのコードも含めて考えたほうがいいように思う
2024/05/03(金) 14:19:35.34ID:0hyuTkzX0
>>732
・a, b の値が変わる
734デフォルトの名無しさん (ワッチョイ 7f2a-E0+q)
垢版 |
2024/05/03(金) 17:28:19.15ID:NFxQvANq0
>>732
> ・a < bの結果を繰り返し使う

繰り返しというか、後で使いたいのだろうな。
a と b 各1ワードを保存できる余裕はないけれど、評価結果 1ビットなら64個保存できる! みたいな。いつの時代の話だよ...
2024/05/03(金) 17:45:12.16ID:KC1xrygK0
元は、後でif文で使う条件が複数あって、最初Falseで初期化して、
一つでも成立したらTrueにして、みたいな処理になってた
で、いろいろリファクタリングしてる途中で、>>721みたいな変形があった
最終的には条件が1つになったのでそのままif文に入れた
2024/05/03(金) 17:48:22.14ID:qpubnZou0
a, bが不変であっても
変数化することでコードの見通しがよくなるなら
情報が冗長になってもそうする
現実ではしないflagって命名に囚われてそう
2024/05/03(金) 18:47:29.14ID:fvsAZQpp0
>>735
それは条件が複数あったとしても条件式部分を関数化して関数内で早期リターンするパターン
2024/05/03(金) 18:56:00.35ID:KC1xrygK0
forの中でアーリーcontinueとか、関数からアーリーreturnは便利に使うけど、
抜ける先が無くてアーリーなんやらできないと困る
関数内関数はなんか読みにくいし
739デフォルトの名無しさん (ワッチョイ a3cd-s5QI)
垢版 |
2024/05/05(日) 11:44:12.57ID:yE3a1mT70
735みたいに、コードの詳細がわからないのにこう書くべきって決めつけてくる人ってなんでなのかな
理想的なケースでは切り出しやすくても、泥臭いケースだと切り出しても見通し悪くなるだけ、みたいなこと
よくあるのに
740デフォルトの名無しさん (ワッチョイ be2a-gL2P)
垢版 |
2024/05/05(日) 12:25:14.46ID:RstXWqFu0
>>739
話題の発端の人だろ、 >>735 は。
741デフォルトの名無しさん (ワッチョイ 4a03-ggbZ)
垢版 |
2024/05/05(日) 12:59:39.57ID:JJQb3/s80
仕様書を書いてないから、条件分岐の意味がわからなくなるんだよ。
742デフォルトの名無しさん (ワッチョイ a3e3-s5QI)
垢版 |
2024/05/05(日) 14:54:59.47ID:yE3a1mT70
>>739
>>740
ごめん、まちがえた。737だった。735すまん。
2024/05/05(日) 15:18:19.04ID:WQY729Fe0
コードを出さないと負け惜しみにしか聞こえないぞ
2024/05/05(日) 15:58:54.36ID:6HiO/5pi0
3重ループの人でしょ
https://mevius.5ch.net/test/read.cgi/tech/1689241721/439
2024/05/05(日) 20:26:20.99ID:pt4LeM/F0
numpyのバージョンアップは怖い
2024/05/06(月) 00:41:49.83ID:wa+Bl7jf0
どんぐりレベルが足りなくてかけない
2024/05/06(月) 00:42:30.89ID:wa+Bl7jf0
レベルアップしたのか
2024/05/06(月) 11:03:33.16ID:poYagYhe0
たくさんのファイルを3ステップで加工したい
一つずつやると時間かかるので、並列処理させる
全ファイルをステップ1処理 -> 全ファイルをステップ2処理、という感じ

それでかなりスピードアップはするけど、
ステップの継ぎ目部分で全体の完了を待つのが無駄
全体は待たずにファイル毎にどんどん先に進む並列処理を
簡単に書くモジュールある?
2024/05/06(月) 11:41:41.15ID:6LmmIky40
>>748
処理がファイル間で独立しているならmultiprocessingモジュール
Unix環境ならxargsコマンドで足りる話にみえるけど
2024/05/06(月) 11:45:32.98ID:6LmmIky40
concurrent.futuresモジュールのが書きやすいかもしれん
どっちも見てみて
2024/05/06(月) 12:28:01.25ID:poYagYhe0
あんまりいいサンプルが見つからない

キモは、プロセスの実行に条件があるという点
file1-step1が完了してないとfile1-step2は実行できない
必要なプロセスを全部登録して実行させるとそんなことは考慮されないので、
どのプロセスが実行可能か依存関係を教えてやらないといけない
2024/05/06(月) 13:02:05.97ID:6LmmIky40
モジュール使う分には単純だから公式ドキュメント読んで
https://docs.python.org/ja/3/library/multiprocessing.html
https://docs.python.org/ja/3/library/concurrent.futures.html
それでファイル単位に並列にして
ファイルを引数にstep1/step2を関数化したら後は呼ぶだけよ

あるいは外部コマンド化して
cat paths | xargs -IZ -P $(nproc) sh -c 'step1.py Z; step2.py Z'
2024/05/06(月) 13:58:46.28ID:poYagYhe0
step1とstep2でプロセスを分けずに全体を1つのプロセスにするということかな
実際にはそれぞれで別のexeファイルを実行するのでなかなか難しい
2024/05/06(月) 17:25:03.16ID:JLRUeB280
for file in files:
 step1.exe file
for file in files:
 step2.exe file
という形じゃなく
step1.exe files
step2.exe files
という形で実行してるなら各exeがファイル毎に進捗報告やコールバックしてくれないと
ファイル単位で処理を先に進めるのは無理

前者でやってるならやりようがあるけど
ファイル単位じゃなくステップ単位にまとめるとスピードアップしたということなので
その原因を先に確認した上でやり方考えたほうがいい

性能向上のための並行/並列化は
具体的な処理内容やワークロードの特性によってアプローチが変わる
one size fits allなやり方は存在しない
2024/05/06(月) 17:28:20.27ID:42NkMtxY0
何を言ってんだこいつは
プログラミング言語の前に国語をやり直せ
そうだな>>748を100万回読み直して相手に何が伝わってると思うか感想を述べよ
2024/05/06(月) 17:29:01.71ID:JLRUeB280
>>752
>'step1.py Z; step2.py Z'
これは'step1-3.py Z’でよくない?
キャッシュされてもインタプリタ起動のオーバーヘッドはそれなりにかかるので
2024/05/06(月) 17:41:01.35ID:JLRUeB280
>>755
なるほど
実際にはまだ何も並行化/並列化できてないという話なのか

>実際にはそれぞれで別のexeファイルを実行するのでなかなか難しい
だったら↑この思い込みを捨てることから始めたほうがいいよ

結局のところPythonで並行/並列化するなら以下の4択なので
具体的な処理内容とワークロードの特性を加味して適切なものを選んでね
1.非同期
2.マルチスレッド
3.マルチプロセス
4.非同期+マルチプロセス
2024/05/06(月) 19:12:43.39ID:poYagYhe0
結局、
proc1.exeをsubprocess.Popen()で並列処理
proc2.exeをsubprocess.Popen()で並列処理
proc3.exeをsubprocess.Popen()で並列処理
となっていたものを、
proc1.exe
proc2.exe
proc3.exe
を実行するbatファイルに移動させて、
batファイルをsubprocess.Popen()で並列処理で目的は達成できた

batファイルかー、という気もするけど、並列処理で依存関係を気にした例は見つからなかった
(並行処理なら普通)
759デフォルトの名無しさん (ワッチョイ 9f5f-ggbZ)
垢版 |
2024/05/06(月) 19:51:46.91ID:mwAWJr9U0
バッチファイルのことをbatファイルと書いているのは初めて見た
2024/05/06(月) 19:58:25.18ID:poYagYhe0
マジか
"バッチファイル" 473,000
"batファイル" 134,000
だから少数派ではあるけど、22%くらいの勢力はあるのに

そもそも、batファイルを使った経験自体が少ないのでは
761デフォルトの名無しさん (ワッチョイ 9f5f-ggbZ)
垢版 |
2024/05/06(月) 19:58:39.61ID:mwAWJr9U0
>>758
テキストファイルの操作みたいだけど、そういうのは処理範囲を指定して同時に動かすんだよ。
2024/05/06(月) 20:03:11.50ID:poYagYhe0
エスパーすげえ
763デフォルトの名無しさん (ワッチョイ 9f5f-ggbZ)
垢版 |
2024/05/06(月) 20:04:20.54ID:mwAWJr9U0
>>760
batファイルという書き言葉は最近、発生しているようだけど、一般書籍でもマイクロソフトでもbatファイルとは呼んでいない。

日本語ではバッチファイル、英語ではbatch file。

バッチファイルを使ったことがないというのは、シェルスクリプトを使ったことがないというのと同じで、Pythonコードも動かいたことがないと思われてしまうレベル。
■ このスレッドは過去ログ倉庫に格納されています