Pythonのお勉強 Part ..
[2ch|▼Menu]
175:Free Tibet
08/05/06 23:57:15
>>167
オライリー信者乙

176:デフォルトの名無しさん
08/05/07 00:20:38
>>175
そんな、人類の足引っ張ることしかできない悲しい奴みたいな言い方しないで
前向きに行きましょうよ。

177:デフォルトの名無しさん
08/05/07 00:24:08
「きさま、マック信者だな?」

178:デフォルトの名無しさん
08/05/07 00:25:34
「きみはゆくえふめいになっていたマックじゃないか」

179:デフォルトの名無しさん
08/05/07 08:13:21
>>169
JythonやIronPythonだと速くなるかも知れない。
CPythonだと複数スレッドを同時に動かせないんで速くならない

180:デフォルトの名無しさん
08/05/07 11:57:52
Python絡みで信頼のおける日本人って
柴田さんしか居ない状況?
他の人ってあっちの人と話したことないよね

181:デフォルトの名無しさん
08/05/07 12:01:59
>>180
んなこたあない
もっと偉い人はいる
多くはないけど

182:デフォルトの名無しさん
08/05/07 12:02:11
>>180
あっちの人と話したことがある=Python絡みで信頼のおける日本人
と言う事ならmatz

183:デフォルトの名無しさん
08/05/07 12:04:01
多くの日本人Pythonistaは引きこもり

184:デフォルトの名無しさん
08/05/07 12:04:28
柴田さんは信頼できるの?

185:デフォルトの名無しさん
08/05/07 12:04:50
個人攻撃が始まった(www

186:デフォルトの名無しさん
08/05/07 13:18:23
自分以上の人間を言いがかりで叩くって
気持ちいいんだもん。

187:デフォルトの名無しさん
08/05/07 13:57:56
柴田淳はじまったな。

188:デフォルトの名無しさん
08/05/07 14:09:25
>>182
ブレース採用の話しかしてないじゃんかw

そういう意味じゃなくて、
開発者が誰で誰がどれを担当していて
今どのモジュールが開発中もしくは放棄中とか
そういった情報を知ってる日本人のことだよ。

189:デフォルトの名無しさん
08/05/07 14:15:11
186が184をカス認定している件。

190:デフォルトの名無しさん
08/05/07 14:29:11
>>188
ある程度ならsvnのコミットのログとか
ソースコードのコメント読めば分かるんじゃないか

191:デフォルトの名無しさん
08/05/07 16:00:25
pygame.orgの英文をなんとかしてほしいんだよね
英文を読んでまでのヤル気が必須になってるから
興味もった素人達にとっては敷居が高すぎる。
ただでさえわからないプログラム解説を、わからない英語で解説されるわけだから。
誰か、日本語翻訳サイトつくってよ
翻訳だけの協力でもいいよ、
俺がサーバー借りてサイト作ってもかまわない
サイト作りは出来るから。
なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?

192:デフォルトの名無しさん
08/05/07 16:03:18
まずはお前が率先して道を示せ。
話はそれからだ。

193:デフォルトの名無しさん
08/05/07 16:53:27
ほとんどSDLのラッパーなんだからSDLをさらっと習得しちゃえば
なんとなくわかるっしょ。

194:デフォルトの名無しさん
08/05/07 17:47:19
>179

>CPythonだと複数スレッドを同時に動かせないんで速くならない

そうなの?俺の持っている本では、

執筆時点(2006?)でフォークはWindowsのPythonでサポートされていない
けど、スレッドはすべてのプラットフォームのPythonでサポートしている・・・

みたいな事かいてあるよ。なのでサポートしていると思うんだけど、違うの?

195:デフォルトの名無しさん
08/05/07 17:54:04
どこのクソ本だよそれ。

196:デフォルトの名無しさん
08/05/07 18:06:26
>>194
C記述の拡張コードがマルチスレッドを考慮していないので
Python上ではマルチスレッドでも実質グリーンスレッド状態になる。
ちゃんとしたマルチスレッドな動作を期待するならJythonやIronPythonになるかな。
文脈でわかるのかもしれないけど「スレッド」といってもいろいろ観点があるから。

>>195
まちがっちゃいないけど説明不足でミスリードしちゃいそうだね。

197:デフォルトの名無しさん
08/05/07 18:13:21
>>194
俺の理解では、Python のスレッドは交互に動いている。つまり、ある時点において1つのスレッドしか動かない。
だから、同時に(並列で)動くことを期待しているマルチスレッドプログラムは速くはならない。
>>170さんの言うように、あるスレッドが入力待ちをしていて、別のスレッドがGUIを司る、というような
マルチスレッドプログラムならば期待通りに、一見並列に動く。
こういう実装になっているのは、種々のモジュールにスレッドセーフであることを要求するのが困難だから。
間違ってたらゴメス

198:デフォルトの名無しさん
08/05/07 19:08:58
194です。

なるほど。私が本のスレッドの説明の最初のとこだけしか読んで
なかったので、勘違いしてました。

もうちょっと読むと>197がいうとおりのような事も書いてました。
「いつでも1つだけのスレッドしか動いていない」って感じで。

現状(2006年?)ではスレッドを複数のCPUに分配できない、み
たいなことも書かれてた。

という事は計算が速くなるわけないですね。>170みたいな用途に
限る、ということか。

199:デフォルトの名無しさん
08/05/07 19:09:16
>>183
自分一人の例を全員の例のように敷衍するひとのひとりですね

200:デフォルトの名無しさん
08/05/07 19:12:07
>>191
URLリンク(www.halb-katze.jp)


201:デフォルトの名無しさん
08/05/07 19:49:30
>>191
> 英文を読んでまでのヤル気が必須になってるから
> 興味もった素人達にとっては敷居が高すぎる。

敷居が高過ぎると思ってしまうのは、その人自身の勝手な固定観念なんだけどな
あと敷居が高過ぎると思って、よりつかない人は、そこまでのモチベーションしかないんだと思うよ
人に聞いているようでは、マジで駄目なんだよ

> 俺がサーバー借りてサイト作ってもかまわない
> サイト作りは出来るから。
> なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?

個人的、希望だが、英文のpygameを学習する際に頻出する英単語帳をつくったりとか、
英文を読み解くためのテクとかを、補助ツールを扱うwikiを作ってくれ
頻出する英単語を500語に厳選して、暗記すれば、かなり読み解けると思うよ

調べるためにググる際も英文の方のほうがひっかかるし、内容が高いことが多い
Wikipediaも英語版のほうが内容が豊富だし、すごくマイナー単語も載っているし
英文には、絶対慣れたほうがいいよ
あとわざわざ翻訳すると逆に読みづらくなるし、理解も難しくなる


これは、既出?
URLリンク(www.unixuser.org)

あと下の本をどういう読み方でもいいから、読んで感想を聞かせてほしいところだね
Amazon.com: Beginning Game Development with Python and Pygame: From Novice to Professional (Beginning from Novice to Professional): Will McGugan: Books
URLリンク(www.amazon.com)

とりあえず、wikiをつくって、2chに晒してみたら?
協力してくれる人もいるかもしれないよ

202:デフォルトの名無しさん
08/05/07 19:54:46
マルチcore対応のスレッドが使えるスクリプト言語を実装するのは難しいの?
Rubyも結局1つでしか動かないらしいし。

203:デフォルトの名無しさん
08/05/07 20:08:34
pygame翻訳しろの話は、くだすれPythonスレとマルチになってたんだな。

204:デフォルトの名無しさん
08/05/07 20:11:45
pygameスレにも貼ってあった

205:デフォルトの名無しさん
08/05/07 20:17:16
pygameなんてなんか人前で言いづらいな。

206:デフォルトの名無しさん
08/05/07 20:18:59
こういうのって勝手に翻訳して公開していいんだっけ?
まぁ事後承諾だろうと拒絶されるこたまずないだろうからどーでもいいんだろうけど

ゲーム用にしか聞こえないよなw

207:デフォルトの名無しさん
08/05/07 20:22:24
>>202
言語自体は各スレッドにインタプリタを1つずつ用意することで簡単に並列化できると思われ。
問題は膨大な量のライブラリモジュール、特にC等で書かれたライブラリのバインディングだ。
スレッドセーフでないライブラリは統合不可ということになる。つまり言語として制約が大きい。
大域変数でメモリ管理ってのは割とありがちだけど、これはスレッドセーフではないのでNG。
こういうものを除外していくとどんどん言語としての有用性が下がっていく。
代替品の再実装なんてやってられん。PythonにしてもRubyにしてもそんなところだと思われ。

208:デフォルトの名無しさん
08/05/07 20:24:13
pygameがLGPLだからドキュメントも同じ扱いになるんじゃないか?
ちゃんと調べてはいないけど

209:207
08/05/07 20:41:33
あんま関係ないけど、OpenMPで並列化されたライブラリを拡張モジュールとしてPythonに組み込んだことがある。
これだと並列化がモジュール内で閉じてるから何も問題ない。
俺はOpenMPで並列化された線形解法ライブラリのラッパを書いてPythonに組み込んだ。フツーに使えた。
ただし、Intel C コンパイラの場合はPython一式を -openmp オプション付きでコンパイルする必要があった。

あと、PythonでMPIプログラムを書いてマルチコア環境で実行するというアプローチもあるね。
これだと真に並列に動作するはず(マルチスレッドプログラミングと同じ要領というわけにはいかないけど)。
Python用のMPI実装にはいくつかあった希ガス。

210:デフォルトの名無しさん
08/05/07 20:53:31
PythonのWikiエンジンってあったんだね
知らなかった

使い勝手は、どうなの?

Python製Wikiエンジン"MoinMoin"、日本語化担当者募集
URLリンク(www.python.jp)


211:デフォルトの名無しさん
08/05/07 21:09:58
URLリンク(moinmoin.wikiwikiweb.de)

比較ページを見つけたけど、いい事しか書いてないなぁ。
まぁMoinMoinのサイトだから仕方ないか。

212:デフォルトの名無しさん
08/05/07 22:00:43
>>207
勉強になった。
スレッドセーフなモジュールを分類してかき集めるってプロジェクトがおこっても
良さそうとか思ったけど見つけられなかった。いろいろと難しいことがあるのかな。

213:デフォルトの名無しさん
08/05/07 22:46:07
>210

昔、自サイトでつかってたけど、まあ中の上ぐらいかしら。
設計はそれなりに綺麗で、たとえばpybloxsomとかから
エンジンだけ利用してレンダリング、とか、pyblosxomの
間で相互リンク、とかできた気がする。

ただ、見た目のきれいさとかはないけどね(デフォルトの設定では)


214:Tracの方が良いよな
08/05/08 00:07:36
先に言っておく。この話題で
MoinMoinじゃなくてTracの方がいい
なんて思ってる人は、何かがずれていると自覚したほうがいい。


215:デフォルトの名無しさん
08/05/08 10:54:55
MoinMoinで気に入ってるのは
Pythonのソースを表示すると
色分けで表示するってやつかな。

あと微妙に軽い。

欠点として‥登録ユーザじゃないと
ページ変更時刻がUTCで記録されてしまう。
これが地味に嫌だ

216:デフォルトの名無しさん
08/05/08 13:12:49
以前、翻訳してみようとWikiを作ってみたけど頓挫しているサイト
Displayモジュールの一部しかまだ翻訳してません
ぶっちゃけ翻訳の作法とかよくわからないし・・・

pygame日本語ドキュメント
URLリンク(wiki.livedoor.jp)

手伝ってくれる人がいたら嬉しい
ちなみにMLで聞いてみたところドキュメントもLGPLらしいね

217:デフォルトの名無しさん
08/05/08 13:41:35
>215

今使ってないからなんとも言えないけど、
Config.tz_offset ってのを書換えれば良さそうですが...
(デフォルトのタイムゾーン)


218:デフォルトの名無しさん
08/05/08 13:43:15
もいんもいん

219:デフォルトの名無しさん
08/05/08 14:19:37
>>212
調べたことないけど、スレッドセーフなモジュール(特にC等で書かれた拡張モジュール)は
ほとんど無いんじゃないかなあ。

例えばCでマルチスレッドのプログラム書いてみると分かるんだけど「このコードはスレッドセーフです」って
言い切るのって結構大変。呼び出しているライブラリ関数がスレッドセーフかどうか逐一確かめて回らないと
いけないから。逐次プログラムの一部分だけをマルチスレッド化できるOpenMPがいかに便利かを実感する。

その点、Java は最初からマルチスレッド対応だから楽チン。
マルチスレッドで真に並列動作するPythonを実現するための一番の近道はJythonだろうね。

220:デフォルトの名無しさん
08/05/08 15:12:06
そのレベルの話であれば、Javaがマルチスレッド対応だから楽ちんだなんてとてもいえないと思うけど。
同期とかの方法と、VMのメモリモデルが規定されているだけでしょ。
結局、使うAPIとかライブラリがMT-Safeかどうか調べなきゃいけない。標準のAPIについては大体書いてあるけど。

221:デフォルトの名無しさん
08/05/08 21:21:29
>>216
今すぐは無理だけど、暇があったら手伝いたい。
勝手に編集してもいいの?

222:デフォルトの名無しさん
08/05/08 23:20:40
>>216 >>221
おまいらがんがれ。

wikiで自分が翻訳したページを他人に修正されると、なんか一瞬犯されたような気分
になったりするけどそんなケツの穴の小さいことは気にしないでがんがん翻訳してくれ。

223:デフォルトの名無しさん
08/05/08 23:26:05
>>222
気にしてるじゃねーかw

224:デフォルトの名無しさん
08/05/08 23:56:46
正規表現検索で
"from A import B, C, ..."
という文字列から A, B, C, ... の部分を抜き出したいんだけど、
正規表現のグループマッチングだけでは対処できない?

re.findall("from\s+(識別子)\s+import\s+(, (識別子))*", source) # 識別子=[\w][\w\d]*

ってやって出てきたマッチオブジェクトは
"A"
"B"
",C"
"C"
っていうふうに、カンマ込みででてきてしまう(当たり前だけど)
"A" "B" "C" だけ抜き出したい場合はやっぱりその他の文字列処理しないとだめ?



225:デフォルトの名無しさん
08/05/09 00:35:11
非グループ化の(?:...)が使えないかな

226:デフォルトの名無しさん
08/05/09 00:41:18
>>224
[A-Z]

227:デフォルトの名無しさん
08/05/09 00:48:28
re.findall('[\w*]+', src) して from と import を filter

228:デフォルトの名無しさん
08/05/09 00:56:39
>>255
おお、こんなべんりなものが!

import re
source = """
from A import BB
from A import CC,DD
"""
print re.findall("\s*from\s+([\w\d]+)\s+import\s+(?:,?\s*([\w\d]+))+", source)

とやってみた。これだと "from 3 import , 4, 5" にもマッチしちゃうけど、
そもそもソースのコンパイルが通る事が前提だから、この簡略化した
判別方法でもOKだという事に気づきました。
が、
上記コードを実行すると
[('A', 'DD')]
という結果になります。期待していたのは
A, BB, A, CC, DD
なんですがグループの繰り返しだけでは取得できないのでしょうか



229:デフォルトの名無しさん
08/05/09 01:37:49
正規表現である必要ってあるの?
こういうなの↓の方が簡単でよくない?

s = "from foo import a, b , c"

f = s.split()
assert f[0] == "from" and f[2] == "import"
buf = []
for name in f[3:]:
    if name == ",":
        continue
    if name[-1] == ",":
        name = name[:-1].strip()
    buf.append(name)

print buf

230:デフォルトの名無しさん
08/05/09 01:41:52
>>228
\w は数字ともマッチするわけだが。
一回、正規表現について勉強しなおしたほうがいいんじゃね?

231:デフォルトの名無しさん
08/05/09 01:44:41
urllib2

232:デフォルトの名無しさん
08/05/09 02:32:46
print re.findall('(w)+', 'ABCD')
結果: ['D']

グループの繰り返しだと、最後だけしか取り出さないみたいだね。

233:デフォルトの名無しさん
08/05/09 11:44:42
(\w)+は後続文字が\wじゃない時にマッチしているみたいだけど

>>> re.findall(r'\w', 'ab^cd_ef.gh ij$hi')
['a', 'b', 'c', 'd', '_', 'e', 'f', 'g', 'h', 'i', 'j', 'h', 'i']
>>> re.findall(r'(\w)+', 'ab^cd_ef.gh ij$hi')
['b', 'f', 'h', 'j', 'i']
>>> re.findall(r'\w\b', 'ab^cd_ef.gh ij$hi')
['b', 'f', 'h', 'j', 'i']

234:デフォルトの名無しさん
08/05/09 16:23:44
【平均年収】岩手県の就職【365万円】 [就職]
【岩手県南】一関第一・水沢・花巻北・黒沢尻北高校 [お受験]

235:デフォルトの名無しさん
08/05/09 17:07:07
何の誤爆かと思ったらおすすめ2ちゃんねるか

236:デフォルトの名無しさん
08/05/09 17:26:46
同郷がいるな!?

岩手のコンビニのバイトは時給620円がデファクトスタンダードだぜ
そして最低賃金が全国最低で自殺率全国2位という素晴らしい県

スレ汚しスマソ

237:デフォルトの名無しさん
08/05/09 18:44:32
>>236
いや、君ひとりかもよ?w
俺もここと恐らく俺の他には誰も見ていないであろうスレ(語学板の某マイナー言語のスレ)を
交互に訪れていたらそのスレがおすすめ2ちゃんねるに出たことあるし。

238:デフォルトの名無しさん
08/05/09 18:49:17
日本では岩手県が一人当たりのPython消費量が多いらしい

239:デフォルトの名無しさん
08/05/09 18:59:25
>>237
どっちも見たこと無い

240:デフォルトの名無しさん
08/05/09 22:58:35
水虫が感染した

241:デフォルトの名無しさん
08/05/09 23:03:51

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇


242:デフォルトの名無しさん
08/05/10 02:37:18
インタプリタ中で定義した関数を、後から
(バイトコードではなく)テキストで定義
を参照する簡単な方法ってある?それとも
難しい?

>>> def f(x): return x
>>> deffn(f)
f(x):
return x

のような感じで


243:デフォルトの名無しさん
08/05/10 03:13:59
>>242
ファイルにあるやつなら insepct.getsource で取れる

244:デフォルトの名無しさん
08/05/10 04:27:34
>>169
Parallel Python というパッケージがあるのを知ったので参考までに紹介しとく。
URLリンク(www.parallelpython.com)
スレッドじゃなく複数プロセスで並列実行する仕組みらしい。
Python のみで実装されていて非常にシンプルなパッケージ構成になっている。
マルチコア環境の場合はスレッドモジュール風に使える。
クラスタ環境では各ノードで計算サーバ(ppserver.py)をしておく仕組みになっている。
応用プログラムはどちらの環境でも同じにできるっぽい。

手元の共有メモリマシンで付属サンプル(sum_primes.py)を実行したら下のようになった。
素数の和を計算するプログラムなのでプロセス間通信はほとんどないけど、
並列化のオーバヘッドはあるわけで、なかなか良好な結果だと思う。

並列度,実行時間(秒),速度向上率
1,  17.54,  1.000
2,  8.781,  1.998
4,  4.424,  3.965
8,  2.261,  7.759

245:169
08/05/10 13:53:14
>>244
おおお,サンクス!
早速いじってみまふ。

246:デフォルトの名無しさん
08/05/10 14:12:25
どうでもいいから
ちゃっちゃとpygameの資料和訳
作業に入れよ。
非国民か?

247:デフォルトの名無しさん
08/05/10 14:41:50
>>246
国際人には和訳などいらんのだよ

248:デフォルトの名無しさん
08/05/10 14:46:02
真の国際人は地域文化を尊重するものだ
と混ぜっかえしてみる

249:デフォルトの名無しさん
08/05/10 14:48:20
地域文化を尊重するから
現地の言葉を尊重するのだよと

250:247
08/05/10 14:48:29
>>248
(・ω・)つ おざぶとん

251:デフォルトの名無しさん
08/05/10 15:03:20
早く日本語化プロジェクトに参加しろよ。
お前らにpygameの未来がかかっている。

252:デフォルトの名無しさん
08/05/10 15:13:29
ユーザからの入力を正規表現で処理したいと思ってます。
入力された文字列に正規表現が含まれてる場合にそれをエスケープしたいんだけど、どうやったらいいのかわかりません。
誰か助けてプリーズ・・・

253:デフォルトの名無しさん
08/05/10 15:16:19
英語も読めないようなやつがpygameを使えるようになるとは考えにくい。

254:デフォルトの名無しさん
08/05/10 15:57:14
たぶんリファレンスの和訳よりも、各オブジェクトを絡ませた逆引きサンプルコードみたいのが需要あると思うよ。
扱い方が理解できりゃオブジェクト名で大体想像できるし

255:デフォルトの名無しさん
08/05/10 16:08:18
リファレンスぐらいなら簡単に訳せそうに見えるね

試しにpygame.cdromモジュール使ってみたけど対話型シェルから
簡単にトレイの開閉とか再生できておもすれー
かなりよく抽象化されてて使いやすそう

256:デフォルトの名無しさん
08/05/10 16:10:06
>>252
re.escapeは試してみた?

257:デフォルトの名無しさん
08/05/10 16:22:06
> リファレンスぐらいなら簡単に訳せそうに見えるね
簡単に訳せる文章、英文でも理解できる文章は、労力をかけて訳してもしょうがないっしょ
邦訳することが目的になっている感じだし、目的が変化している

核となるもの、肝となるもの、大事な概念だけど理解しにくいものを中心に
Pygameに興味のある者が理解しやすい仕組み・しかけをつくるほうが大事


とりあえず、目的・問題の明確化をさせたほうがいいんじゃないの?

258:252
08/05/10 16:46:20
>>256
できましたありがとー!
(_アンダースコアもエスケープされちゃうのがナゾですが・・・)

259:デフォルトの名無しさん
08/05/10 19:07:41
このスレッドの目的は
pygame文書の和訳という使命を帯びた事が証明されたわけだ

260:デフォルトの名無しさん
08/05/10 19:28:29
よし、wxpythonの和訳が終わったらpygameも和訳するぜ

まだ、何もやってないけど

261:デフォルトの名無しさん
08/05/10 19:43:09
Pygameのドキュメントだけ見てもよくわからないけど
SDLの方のドキュメントを読むと理解できる事も多いよね

262:デフォルトの名無しさん
08/05/10 20:39:56
お前らは早くpygameの和訳作業にとりかかれ

263:デフォルトの名無しさん
08/05/10 20:44:07
英語も読めない低脳は黙ってろ

264:デフォルトの名無しさん
08/05/10 21:01:38
ここの基準はPythonが書けるかどうかで決まるんだぜ(藁)

265:デフォルトの名無しさん
08/05/10 21:02:23
Pyhton

266:デフォルトの名無しさん
08/05/10 21:04:17
pyてょn

267:デフォルトの名無しさん
08/05/10 21:31:23
oh tyPo

268:デフォルトの名無しさん
08/05/10 21:34:00
○〜〜  ○〜〜  ○〜〜
  ○〜〜  ○〜〜  ○〜〜
    ○〜〜  ○〜〜  ○〜〜


269:デフォルトの名無しさん
08/05/10 21:52:46
sperm, sperm, sperm and sperm.

270:デフォルトの名無しさん
08/05/10 21:54:07
まず pygame を何と訳したらいいのかわかりません

271:デフォルトの名無しさん
08/05/10 21:58:25
pygame でいいじゃん

272:デフォルトの名無しさん
08/05/10 22:07:29
随時出張してきてもいいが、本スレに帰れ

あとpygame翻訳と最初に騒いだヤツは、もうマルチするなよ
次スレからちゃんとテンプレに追加してやるから

【pygame】pythonでゲーム製作【ぱいがめ】
スレリンク(gamedev板)

>>270
Python + game = Pygame
こういう組み合わせの名前(造語)って代表的なのってなんだろう?

273:デフォルトの名無しさん
08/05/10 22:25:32
pychinko

274:デフォルトの名無しさん
08/05/10 22:59:17
pygameの和訳を済ませろボケナスども

275:デフォルトの名無しさん
08/05/10 22:59:58
乳遊

276:デフォルトの名無しさん
08/05/10 23:30:28
自己解決の次は翻訳か

277:デフォルトの名無しさん
08/05/10 23:37:22
>>272
PyPI, PyPy

278:pygame和訳wiki”管理”者
08/05/10 23:44:29
事故解決しました

279:デフォルトの名無しさん
08/05/10 23:49:25
つまんね

280:244
08/05/10 23:51:28
引続き Parallel Python をいじってみたんだけども、このシステムはマスタワーカモデルを前提にしているみたいだ。
つまり、マスタが仕事の集合を持っていて、有限個のワーカに1つずつ仕事を割り当てる。仕事を終えたワーカは
マスタから新しい仕事をもらって処理する。これを仕事の集合が空になるまで続ける。

ワーカ間で通信をする機能は提供されていないし、特定のワーカ(たとえば特定のリモートホスト上のppserver.py)に
特定の仕事を割り当てることもできないっぽい。Parallel Python が有効かどうかは実現したい並列アルゴリズムが
マスタワーカモデルに適合するかどうかに依る希ガス。

281:デフォルトの名無しさん
08/05/11 00:26:06
おっpydev

282:デフォルトの名無しさん
08/05/11 00:37:49
pygameの和訳が進んでいるか、
確認のために毎日一回以上は
pygame関連の話題を出すようにしようぜ

反論がある奴は似非python使いとして認定してやろうぜ

283:デフォルトの名無しさん
08/05/11 00:40:31
>>280
具体的には、どういう用途に使えそうなんですか?

284:244
08/05/11 00:59:44
>>283
pygameかな

285:デフォルトの名無しさん
08/05/11 01:34:00
>>283
最も適しているのは並列処理の分野で embarrassingly parallel と呼ばれるカテゴリに属する種々の計算、
すなわち入力データを複数の独立した部分に分割できて、各部分について他から独立して計算が行なえる
タイプの用途に適している。
URLリンク(en.wikipedia.org)
Wikipediaに例があがっている。フラクタル計算とか3DCGのレンダリング(例:レイトレーシング)とか力任せの
暗号解読とか色々ある。

並列処理って概して複雑で長時間計算し続ける必要のある応用が多い。そういう応用には C とか Fortran を
使うことがほとんどなんだけど、きちんと動くようになるまでの開発時間が長くてデバッグがたいへんだったりする。
そういう並列プログラムの試作(プロトタイピング)に Python が使えたらいいなーと個人的には思っている。

286:デフォルトの名無しさん
08/05/11 08:49:01
>>274
おまえにいいこと教えてあげよう。
市場の中の肉屋さんいって、
「ホースください」頼んでみ。
解体処理した豚の膣の部分がもらえる。
ほんとは金かけて廃棄しないといけない部分だから無料でもらえる。
食い物にはならないから。
この豚の膣が極上。
まあ考えたら膣だからな。
人間のじゃないだけで本物の膣だから、気持ちよくて当たり前。

287:252
08/05/11 09:30:17
re.escapeってなんでもかんでもエスケープしちゃうのか・・・
\山\田\太\郎て

288:デフォルトの名無しさん
08/05/11 09:43:58
>>285
PythonでCPU8個使って並列計算するよりCで書いたプログラムの方が速そうだったり。。。

289:デフォルトの名無しさん
08/05/11 09:57:09
>>288
何言ってんだ?

290:デフォルトの名無しさん
08/05/11 10:28:52
>>289
あ?ヤンのかコラ

291:デフォルトの名無しさん
08/05/11 11:21:19
URLリンク(www.geocities.jp)

292:デフォルトの名無しさん
08/05/11 11:21:53
>>286
ついでに言うと豚の内臓と人間の内臓はかなり近いらしいね
豚の心臓を人間に移植した話もあるからな


293:デフォルトの名無しさん
08/05/11 12:13:17
>>292
羊の膣も極上という話だけどどうなのだろうね?

294:デフォルトの名無しさん
08/05/11 12:14:24
膣なんてどうでもいいから
チャッチャとpygame資料の和訳作業に務めろ糞野郎共

295:デフォルトの名無しさん
08/05/11 14:39:25
>>285
自分も並列化するときのプロトタイプとしてPythonの並列環境を使ってみたいと
考えているんだけれど、今のところプロトタイプとしての感触はどう?

データ分割の楽な問題ってCとかFORTRANでもOpenMPを注意深く使うだけでも早くなる事が
多いし、MPIでも慣れれば苦労せずに書けるけれど、そうでない、スレーブ間での通信が必要
とかうまく分割できないとかそういう問題はMPIでやろうとするとデバッグが(;゚д゚)
なことになりがちで、そういう用途にPythonのプロトタイプが役に立つなら素晴らしいと思う
実はC並列版とそれほど速度とメモリ使用量が変わらないとかなら最高
C並列版より速ければ神

296:デフォルトの名無しさん
08/05/11 16:53:12
Parallel Python だけど pp.Server.__scheduler() を適当に書き直せばワーカと仕事の対応(割り当て)を
ユーザ側で決められそうな希ガス。問題はワーカ間のプロセス間通信。これが一番面倒なところなんで
自前で実装となると Parallel Python を使ううまみがほとんどない・・・。

やっぱ MPI の Python バインディングあたりが一番現実的な解かなー。でもなんか気が重いんだなー。
もっと Python らしく lightweight なソリューションがないかなー。

>>288
Python の並列プログラムより C の逐次プログラムの方が速そうってことだよね。
そういうことは十分(多分頻繁に)あると思われ。

>>295
残念ながらまだ並列プログラムのプロトタイプ用途には使えてなくて感触を得るところまでいってない。
理由は単純で、Python で手軽に並列プログラミングを実現できる道具を見つけられていないから。
>>209に書いたようにいろいろ試してるんだけどなかなか・・・。

ただ、個人的には Python を並列化のプロトタイピングに使うのは大いに有望だと思っている。
プロトタイピングの場合、欲しいのは並列度やデータ量を上げたときの実行時間の変化であって、
実行速度が多少遅くて実験に時間がかかるとしても知りたいことは分かるはずだから。
プロセス間通信にソケットを使うとすると、データ量が大きくなれば Python でも C 等と同じぐらいの
速度が出る(ハズ)。演算量が多い部分に numpy 等の C/Fortran で書かれた数値カーネルを使うことに
すれば、プロトタイピング用途には十分な速度とメモリ使用量が得られるのではと思う。

297:デフォルトの名無しさん
08/05/12 01:33:26

Linux で wxPython をコンパイルしようとして、
URLリンク(ymasuda.jp)
ここを参考に進めて行ったんだけど、最後の
python setup.py install
を実行したところでむちゃくちゃエラー吐いて止まるんだけど・・・
一部だけエラーを載せるけど、同じファイルのエラーが延々と120行近くでるんだ。

contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'wxGLCanvas' was not declared in this scope
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'arg1' was not declared in this scope
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: expected primary-expression が ')' トークン前にあります
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 数値定数の前に expected ';'

「glcanvas_wrap.cpp wxPython」で検索したら英語で色々皆同じ問題にあってるみたいだけど、解決方法を探せなくて(読めなくて)困ってます・・・教えて!エロイ人!

298:デフォルトの名無しさん
08/05/12 02:10:10
config.py(setup.py?)のBUILD_GLCANVASを0にしてみたら?

299:デフォルトの名無しさん
08/05/12 08:47:31
>>297
どのディストリ使ってるのか不明なんだけど、
バイナリパッケージでは存在してないの?

300:デフォルトの名無しさん
08/05/12 17:11:39
単なる興味なのですが、Unicode文字列と等価なバイト列を得る方法をご教示頂けないでしょうか?

'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。
で、u'hello'と等価なバイト列は、例えば'\xff\xfe\x68\x00\x65\x00\x6c\x00\x6c\x00\x6f\x00'
と思うのですが、pythonで両者の直接変換はできるのでしょうか?という質問です。

u'hello'.encode('utf-16')がほぼ等価ですが、これはあくまでエンコーディングなので、
直接バイト列を得てるわけじゃないのかな、と思った次第です。

301:デフォルトの名無しさん
08/05/12 17:19:12
内部表現はUCS2かUCS4だったと思うのだが
中身に触る方法はないほうがいいんじゃないかな

302:デフォルトの名無しさん
08/05/12 17:23:20
ord 関数じゃダメなんすか

303:デフォルトの名無しさん
08/05/12 20:12:59
>>300
文字列はエンコーディングを決めなければバイト列では表現できないよ。

> 'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。 

ここで実は300さんはエンコーディングとして ASCII  を仮定している(ASCII をサブセットとして含む
別のエンコーディングかも知れない)。例えば、もし EBCDIC を仮定していたら別のバイト列になる。

> pythonで両者の直接変換はできるのでしょうか?

エンコーディングが分かっていればご存知の通り unicode() と .encode() で可能。

304:デフォルトの名無しさん
08/05/12 20:39:43
print repr([u'hello'])

305:297
08/05/13 01:30:38
>>297です。
>>298-299
大変申し訳ない。
上記URLの、下記の文をすっとばしてました・・・。

cd $WXDIR               (ソースツリーに移動する)
mkdir bld               (ビルドディレクトリ bld を作成)
cd bld                  (ビルドディレクトリに移動)
../configure            (configure を実行)

一番最初からやり直したらエラーを吐かなくなったよ。
でも、色々可能性を考えて下さってありがとうございました。
お騒がせしてしまい申し訳ございませんでした。

306:デフォルトの名無しさん
08/05/13 08:29:09
>>305
うわ、ビルド方法が面倒くさいね

307:デフォルトの名無しさん
08/05/13 10:12:52
>301
ないほうがいいってことはないでしょ

初心者が文字列操作で使うべき方法として
提示されるかどうかはともかく

308:デフォルトの名無しさん
08/05/13 11:09:48
>>> repr(unicode('あいうえお'))
"u'\\u3042\\u3044\\u3046\\u3048\\u304a'"
>>> unicode('あいうえお').encode('unicode_escape')
'\\u3042\\u3044\\u3046\\u3048\\u304a'
>>> unicode('あいうえお').encode('raw_unicode_escape')
'\\u3042\\u3044\\u3046\\u3048\\u304a'
>>> unicode('あいうえお').encode('unicode_internal')
'B0D0F0H0J0'
好きなのを選べ

309:300
08/05/13 12:46:51
>>301-304
>>307-308

皆様ご助言どうもありがとうございました。
>>302 >>308さんご提示の、コードポイント取得方法が私の期待に非常に近いものでした。
ですがそもそも、>>303 さんご指摘の通り、私には「バイト列はエンコーディングによって
はじめて定義されるもの」という認識が甘かったように思います。
私が例示したu'hello'のバイト列は、既に何かのエンコーディングが施されたもののはずだから、
そのバイト列と.encode(...)は全く等価ですね。

御蔭様で理解が深まりました。ご教示どうもありがとうございました。

310:デフォルトの名無しさん
08/05/13 15:58:29
最近の初心者は文体が丁寧だな

311:デフォルトの名無しさん
08/05/13 16:13:00
いいことじゃないか。

312:デフォルトの名無しさん
08/05/13 18:42:46
ipython1.0 は並列に対応しているみたいだね
使ってみたいがインストールできないorz

313:デフォルトの名無しさん
08/05/13 20:05:48
threading.threadで作ったスレッドをKillするにはどうすればええの?

class myThread(threading.Thread):
 alive = True
 def run(self):
  while self.alive:
   """ なにか """
 def kill(self):
  self.alive = False

こういうのじゃなくて、イメージとしては

threading as th

myth = th.Thread()
myth.start()
print "あへあへ"
myth.kill()

みたいな。

314:デフォルトの名無しさん
08/05/13 20:27:04
無理。
他のOSネイティブなスレッドでも、そういう手段は用意されていないか
用意されていても推奨されていない。


315:デフォルトの名無しさん
08/05/13 20:33:36
基本的にスレッドはスレッド自身で終了させた方がいいよ

316:デフォルトの名無しさん
08/05/14 00:04:03
URLリンク(www.devchix.com)
> Kamaelia: The future of Python Frameworks looks promising.

317:デフォルトの名無しさん
08/05/14 06:37:55
とりあえず clss GetBBC はよしたほうがいいな

318:デフォルトの名無しさん
08/05/14 17:22:08
URLリンク(groups.google.com)

空のtxtファイルが出来る言ってるから、日本語通らない?
とかスレ違い気味だけど聞いてみる

319:デフォルトの名無しさん
08/05/14 19:29:11
日本語でおk

320:デフォルトの名無しさん
08/05/16 19:23:25
ウェブアプリを作りたいなと思い、教育用らしいPythonを始めようと思うのですが
XAMPPみたいにアーカイブを展開するだけで
ApacheとPythonのApacheモジュールが使えるようになるWindows向けソフトとかありますか?
お手軽な感じで始めたいです

321:デフォルトの名無しさん
08/05/16 19:30:13
cd htdocs
C:\Python25\python.exe -m CGIHTTPServer

Pythonだけでできるよ。apacheなんてイラネー

322:デフォルトの名無しさん
08/05/16 19:55:26
320です
どうもありがとうございます
ブラウザで表示確認できるんでしょうか
よくわからないので調べてきます
ほんと無知ですみません

323:デフォルトの名無しさん
08/05/16 22:07:06
CGIHTTPServer にあったディレクトリのバグは直ったんだろうか?

324:デフォルトの名無しさん
08/05/16 22:13:14
これ?
URLリンク(svn.python.org)
>[Bug #737202; fix from Titus Brown] Make CGIHTTPServer work for scripts in sub-directories

325:デフォルトの名無しさん
08/05/17 00:01:14
>>321
終了のしかた教えて

326:デフォルトの名無しさん
08/05/17 01:59:21
Python の C コード書くときのコーディング規約って、みんなちゃんと守ってる? 
どこまで守ってる?

static PyObject *
Hoge(........)
{
•関数の戻り値型の直後に改行を入れる
•関数ブロックの始まりの括弧の直前で改行する

if (a + b + c) {
}
•関数以外のブロックは、始まりの括弧を行末に置く
•括弧の中に余分な空白を入れない
•二項演算子の両側には空白を置く

X return ( expr );
O return expr;
•冗長な括弧は使わない

327:デフォルトの名無しさん
08/05/17 06:14:03
>>325
Ctrl + D とかじゃないの

328:デフォルトの名無しさん
08/05/17 10:01:43
>>326
そんな規約があるとは知らなかった。

329:デフォルトの名無しさん
08/05/17 10:10:11
>>326
URLリンク(www.python.org) の下のどこかにあります?

330:デフォルトの名無しさん
08/05/17 10:59:22
どう見てもPEPだろ

331:デフォルトの名無しさん
08/05/17 11:14:13
WindowsならCtrl+ZのあとにEnter
でも最初の表示どおりhelp→help()→quit→quit()と入力していってほしいかも。

332:デフォルトの名無しさん
08/05/17 11:49:46
>>328,329
PEP 7 -- Style Guide for C Code
URLリンク(www.python.org)

333:デフォルトの名無しさん
08/05/17 14:47:26
>>321 >>327 >>331
ありがとうございます

Windows で python -m CGIHTTPServer を実行しています

Ctrl + C
Ctrl + D
Ctrl + Z

どれもダメだったのでタスクマネージャーから殺したら終了出来ました

あとでわかったのですが、
Ctrl + C
を押したあとにブラウザの更新ボタンで再度リクエスト投げると
Keyboard Interrupt
が出て終了するようです
Windows だから select で監視出来ていないということでしょうか?


334:デフォルトの名無しさん
08/05/17 15:22:22
単純にaccept()がブロックしてるだけでしょ
try節で囲むかtelnet localhost 80とかやってから落とせばいい

335:デフォルトの名無しさん
08/05/17 15:44:26
>>333
普通のCGIがやりたいの?
ApacheでCGIがやりたいの?
320を読む限りではGoogle App Engineとかそういうのが近いのかな?
GAEはお勧めしないけど。

336:デフォルトの名無しさん
08/05/17 19:40:24
>>335
320ですが320は322しか書き込みしていません・・・
私とはしたいことが異なるのではないかと思います

あと、質問してもよろしいでしょうか
じつはまだサーバ上でファイルを実行できていないんですが、そのことについて・・・

CGIHTTPServer.pyを起動させて
htdocsフォルダを作って
まだpythonのスクリプトが書けないので既存のスクリプトファイル
URLリンク(python.rdy.jp)のcheck.cgiとexplore.cgi)を
URLリンク(localhost:8000)
に入れて表示させてみたのですが
ieだとそのまま中身のテキストが表示され
firefoxだとcgiファイルのダウンロードが始まってしまいます
拡張子をpyに変えてみたらie、firefoxともそのまま中身のテキストが表示されます

cgi-binフォルダを作って
同様に既存のスクリプトファイルを
URLリンク(localhost:8000)
に入れて表示させてみたら
拡張子がcgiだと
ie、firefoxともに
> Error response
> Error code 403.
> Message: CGI script is not executable ('/cgi-bin/check.cgi').
> Error code explanation: 403 = Request forbidden -- authorization will not help.
と表示されます
拡張子をpyに変えてみたら
ie、firefoxともに真っ白な画面が表示されます

うまく実行させるにはどうすればいいのでしょうか・・・

337:デフォルトの名無しさん
08/05/17 20:05:18
それsh辺りのスクリプトだからwinじゃ動かないよ
.pyに変えたらコマンドプロンプトにエラーメッセージが表示されてるからよく嫁
とにかくエラーメッセージはきちんと嫁

338:デフォルトの名無しさん
08/05/17 20:05:43
Apacheの場合、デフォルトで
* htdocsにはHTMLおよび画像ファイル
* cgi-binにはCGIスクリプト
と分けて設置しなければいけない。
CGIHTTPServerでも似たようなものだと思う

> Message: CGI script is not executable ('/cgi-bin/check.cgi').
とりわけ使ってるのがLinuxなら
CGIスクリプトの一行目にshebang入れてchmod +xしなきゃだめ
WindowsだとWebサーバにもよるけどshebangは必要かも

339:デフォルトの名無しさん
08/05/17 20:08:17
ああほんとだ。見てなかった >sh辺りのスクリプト
explore.cgiはPythonで書かれてるから動くんじゃないかな

340:デフォルトの名無しさん
08/05/17 20:13:03
>>336
htdocs フォルダが My Documents みたいにスペースの入ったフォルダの配下にない?

341:デフォルトの名無しさん
08/05/17 20:16:50
>>337-340
336です
親切にどうもありがとうございますm(_ _)m
ただ話の内容が難しくて理解が追いついていません・・・

windows上で使っています
いつかはレンタルサーバを借りて動かしたいと思っているのですが
windowsとlinuxでスクリプトの書き方(?)が異なるのでしょうか・・・

コマンドプロンプトにメッセージが表示されるんですね
読んでみます
テスト用に選んだスクリプトも選択ミスだったんですね
パスにスペースは入っていません
ピリオドと数字は入っています

エラーメッセージをよく読みます

342:デフォルトの名無しさん
08/05/17 20:35:42
実際に試してきた

1. c:\cgi-bin\ に env.py を置く
import os
print 'Content-type: text/plain\n\n'
for key in os.environ:
  print '%s: %s' % (key, os.environ[key])
2. cd c:\ して python -m CGIHTTPServer する
3. ブラウザで localhost:8000/cgi-bin/env.py にアクセス
 環境変数がずらっと表示されたら成功

Windowsの場合、shebang も chmod +x も必要ないが
拡張子は .py にしないと動かないみたい

あと My Documents みたいなフォルダの配下だとこけるのは
>>340が指摘してくれている通り

343:デフォルトの名無しさん
08/05/17 21:01:56
>>342
336です
env.pyはうまく動きました!と思います
45行ほどの文字列が表示されました

explore.pyもうまく表示されました
表データが表示されました

cgi-binに拡張子をpyにして入れるんですね

初歩的なことに付き合っていただき
みなさん
ありがとうございますm(_ _)m

344:デフォルトの名無しさん
08/05/17 21:10:10
めずらしくpythonのお勉強なんかやってるやつがいるな


345:デフォルトの名無しさん
08/05/17 21:34:07
まだpythonにたどり着いてない気が…


346:デフォルトの名無しさん
08/05/17 21:44:28
c:\ に置かせようとするセンスが理解出来ん

347:デフォルトの名無しさん
08/05/17 21:50:30
センスっつーより悪意を感じる

348:デフォルトの名無しさん
08/05/17 22:13:52
拡張子がcgiでも関連付けでpythonを起動してやるようにすれば動くかもしれない。
実行可能ならbatなんかでもCGIとして動作するみたいだから。

349:デフォルトの名無しさん
08/05/19 16:39:43
こんにちは。いつも参考にさせていただいております。
さて、早速なのですがPythonでテキストファイルへの書き込みは出来るのですが追加の書き込みの方法がわかりません。
一度内容を読み込んで結合してから書き込んでもよいのですがあまりスマートとは思えませんでしたのでここに投稿した次第です。
方法をご教授いただければ幸いです。


350:デフォルトの名無しさん
08/05/19 16:42:06
open(path, 'a')

351:デフォルトの名無しさん
08/05/19 16:48:57
レスありがとうございます。解決いたしました。

352:デフォルトの名無しさん
08/05/19 20:59:01
下記をCGIとして動かしてみたところ、何も表示されません。
# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

print "Content-Type: text/plain\n\n"

form = cgi.FieldStorage()
if not (form.has_key("name") and form.has_key("addr")):
print "<H1>Error</H1>"
print "Please fill in the name and addr fields."
return
print "<p>name:", form["name"].value
print "<p>addr:", form["addr"].value


以下は動作するのでバーミッションの設定ではないと思います。
# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

print "Content-Type: text/plain\n\n"
print "hoge"


解決策など示していただければ幸いです。

353:デフォルトの名無しさん
08/05/19 21:06:40
returnが関数外じゃない?

354:デフォルトの名無しさん
08/05/19 21:18:28
すいません。インデントが外れていたので
URLリンク(codepad.org)
URLリンク(codepad.org)

355:デフォルトの名無しさん
08/05/19 21:30:37
return→sys.exit()に

356:デフォルトの名無しさん
08/05/19 21:33:21
いや、だから>>353
が言っているように、関数内じゃないのに
returnがあるのがおかしいんじゃないの

# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

def main():
print "Content-Type: text/html; charset=UTF-8\n\n"
form = cgi.FieldStorage()
if not (form.has_key("name") and form.has_key("addr")):
print "<H1>Error</H1>"
print "Please fill in the name and addr fields."
return
print "<p>name:", form["name"].value
print "<p>addr:", form["addr"].value

if __name__ == '__main__':
main()


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5369日前に更新/131 KB
担当:undef