08/04/29 23:47:08
Python オフィシャルサイト
URLリンク(www.python.org)
URLリンク(www.python.org)
日本Pythonユーザ会
URLリンク(www.python.jp)
URLリンク(www.python.jp)
FrontPage - Pythonのお勉強
URLリンク(python.rdy.jp)
前スレ
スレリンク(tech板)
◆関連スレッド
Microsoft IronPython 1.0
スレリンク(tech板)
Python の宿題ここで答えます Part 1
スレリンク(tech板)
Python Challengeをやろう!
スレリンク(tech板)
Pythonについて(アンチ専用)
スレリンク(tech板)
Pythonに見られるインデントによる制御構造の是非
スレリンク(tech板)
pythonがこの先生きのこるには
スレリンク(tech板)
Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev)
スレリンク(tech板)
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
スレリンク(tech板)
デザパタ + Python/Ruby/Smalltalk part2
スレリンク(tech板)
2ch検索: [python]
URLリンク(find.2ch.net)
2:デフォルトの名無しさん
08/04/29 23:47:59
>1
乙
3:デフォルトの名無しさん
08/04/29 23:50:23
初めてのPython 第2版
URLリンク(www.amazon.co.jp)
4:デフォルトの名無しさん
08/04/29 23:53:00
_
-「 ̄ |
| | | なんかバギしたら>>1乙でた
|| +| ありえん(笑)
.L ‐--‐'ヽ
|l リV _` ≡乙
|cl | ´ヮ ノ/
.l レ l |
/ | +|
5:デフォルトの名無しさん
08/04/29 23:53:45
関連書籍
URLリンク(python.rdy.jp)
6:デフォルトの名無しさん
08/04/30 02:49:36
日本語対応における注意点のようなもの
URLリンク(python.rdy.jp)
7:デフォルトの名無しさん
08/04/30 18:39:57
前スレ>>998
2.5ならカリー化できるみたいよ、
URLリンク(d.hatena.ne.jp)
8:デフォルトの名無しさん
08/04/30 20:29:06
くだすれPython(超初心者用)
スレリンク(tech板)
9:デフォルトの名無しさん
08/04/30 21:52:34
【pygame】pythonでゲーム製作【ぱいがめ】
スレリンク(gamedev板)
10:デフォルトの名無しさん
08/04/30 22:44:25
自分の環境で利用できるモジュールの一覧を取得する方法ってありますか?
11:デフォルトの名無しさん
08/04/30 23:15:16
pkgutil.iter_modules
12:デフォルトの名無しさん
08/05/01 02:27:16
>>11
ありがと、ちょう便利。
13:デフォルトの名無しさん
08/05/01 11:14:25
20行程度のコードでクラス作るやつってなんなの?変態?
14:デフォルトの名無しさん
08/05/01 12:08:38
継承してるんだとすればそんなの当たり前だろ
15:デフォルトの名無しさん
08/05/01 12:47:35
>>13
なんともいえない。20行程度なら全ソースを貼ってみ。
16:デフォルトの名無しさん
08/05/01 13:02:04
>>15
お前がやってみろゴミクズが
17:デフォルトの名無しさん
08/05/01 13:13:06
ポカーン....
18:デフォルトの名無しさん
08/05/01 13:14:23
切り返しになって無さ過ぎて、煽りとしても成立してないぞ。
何を見て>>13を書いたのか、君の目撃例を出してみれって話だろう。
君が何を見て言っているのかの提示を、どうやって君の話し相手が「やる」んだ?
19:デフォルトの名無しさん
08/05/01 13:48:09
自己解決しました。
20:デフォルトの名無しさん
08/05/01 14:11:15
若い人はちょっとしたコメントにも全身全霊で反応してくれるので楽しいですの~
21:デフォルトの名無しさん
08/05/01 14:15:19
オッサンは下水に流れてフナの餌にでもなれ。
22:デフォルトの名無しさん
08/05/01 14:49:37
20行程度貼るのを、そこまで拒否せんでもねえ。
23:デフォルトの名無しさん
08/05/01 15:20:35
1関数500行以上、
っていうヘンテコルールが弊社に存在します
24:デフォルトの名無しさん
08/05/01 15:28:51
自己解決禁止
25:デフォルトの名無しさん
08/05/01 15:31:13
他者解決しました。
26:デフォルトの名無しさん
08/05/01 16:24:42
イケメンハッカーが解決しました。
27:デフォルトの名無しさん
08/05/01 16:35:38
解決禁止
28:デフォルトの名無しさん
08/05/01 16:42:50
自決しました。
29:デフォルトの名無しさん
08/05/01 17:23:20
墓穴しました
30:デフォルトの名無しさん
08/05/01 17:43:53
アナルを開発しました。
31:デフォルトの名無しさん
08/05/01 18:07:12
ほんとにpythonの勉強をしている人達の掲示板とか、有りますか?
32:デフォルトの名無しさん
08/05/01 18:40:07
>>31
このスレの住人がPython勉強してないみたいなこと言うな自己解決しました。
33:デフォルトの名無しさん
08/05/01 19:01:45
ここは雑談スレ
本スレはあっち
34:デフォルトの名無しさん
08/05/01 19:35:12
hello = ["Hello", "こんにちわ", "Здравствуйте", "Buongiorno", "Bonjour"]
みたいなデータを
hello['e'], hello['j'], hello['r'], hello['i'], hello['f']
みたいにアクセスするにはどうしたら良いでショッカー
35:デフォルトの名無しさん
08/05/01 19:53:37
近所の本屋に jython 本が入荷してあった。
ちゃんと import になってたぞ。残念な気分になった。
36:デフォルトの名無しさん
08/05/01 19:55:51
>>35
>ちゃんと import になってたぞ
じゃあ買うのよすわ
37:デフォルトの名無しさん
08/05/01 19:56:19
工エエェェ(´д`)ェェエエ工
38:デフォルトの名無しさん
08/05/01 20:02:33
imprtの方は希少価値がついたな
39:デフォルトの名無しさん
08/05/01 20:03:56
>>35
イケメンハッカーは神になりそこねたと思うよ.
40:デフォルトの名無しさん
08/05/01 20:13:52
>>35
自己解決したんですね。
41:デフォルトの名無しさん
08/05/01 20:19:27
>>34について、興味がわいたので、
class hoge(list):
def __getitem__(self,x):
if x == 'e':
return self[0]
としても、リストのインデクス0番目が帰ってこない。
print x及びprint type(x)とすると、
入力した値と<type 'str'>と帰ってくるんだが、どういう現象?
42:デフォルトの名無しさん
08/05/01 20:27:16
なんで突然レス途切れるんだよ orz
43:デフォルトの名無しさん
08/05/01 20:29:00
>>41
self[0]を使うとhoge.__getitem__がもう一度呼ばれるので
return list.__getitem__(self, 0)じゃないと駄目
>>34は普通に辞書を作った方がいいと思うが
44:デフォルトの名無しさん
08/05/01 20:29:49
>>43
馬鹿な俺に答えだしてくれてありがとう
45:デフォルトの名無しさん
08/05/01 20:32:10
非結合メソッドの扱いかただね、
勉強不足すぎるわ俺
46:デフォルトの名無しさん
08/05/01 20:45:08
>>34
hello = {'e': 'Hello', 'j': 'こんにちわ', 'r': 'Здравствуйте', 'i': 'Buongiorno', 'f': 'Bonjour'}
47:デフォルトの名無しさん
08/05/01 20:53:06
>>34
def dictize(word):
for k,v in zip(idx,word):
temp[k] = v
return temp
idx = ['e', 'j', 'r', 'i', 'f']
hello = ["hello", "こん", "ズドラストヴィーチェ", "buongiorno", "bonjur"]
hello = dictize(hello) # 識別子hello を 辞書化
hello # 素のhelloリスト (データ)
こんなかんじやね。じこかいけつしました
48:デフォルトの名無しさん
08/05/01 20:56:05
>>47
dictizeを用意しなくてもdict(zip(idx,hello))で辞書化できるよ
49:デフォルトの名無しさん
08/05/01 21:00:22
辞書化いけつしました
50:デフォルトの名無しさん
08/05/01 21:01:31
>>13
部品ぽいクラスだったら10行以内とかでも普通。
その辺に転がってるモジュールの中にいくらでも例がある。
要はどういうデータの束に名前を付けるかって言うだけの話なので、
小さいところに名前付けたらクラスも小さくなる
クラス=なんか大物
と思ってる人は、勉強した本が悪い
51:デフォルトの名無しさん
08/05/01 23:30:23
perl の pmsetup みたいな egg プロジェクトの雛形を作成するスクリプトってありませんか?
52:デフォルトの名無しさん
08/05/01 23:39:00
イスパニア語でおk
53:デフォルトの名無しさん
08/05/01 23:40:25
?el pmsetup del perl Como el huevo no Est? all? cualquier escritura que crea el formulario de un proyecto?
54:デフォルトの名無しさん
08/05/01 23:45:23
It was possible to solve it for myself.
55:デフォルトの名無しさん
08/05/01 23:50:41
我其解決自己的
56:デフォルトの名無しさん
08/05/01 23:53:21
>>54
It impossible for native English speaker to understand such a terrible English.
57:デフォルトの名無しさん
08/05/02 00:02:26
>>> x = 'global'
>>> def f():
... print x
...
>>> f()
global
>>> def f2():
... print x
... x = 'local'
...
>>> f2()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 2, in f2
UnboundLocalError: local variable 'x' referenced before assignment
ってなるのは何故?
58:デフォルトの名無しさん
08/05/02 00:06:13
そういうもん。f2()のxは代入があるからローカル変数だと判断したんだろ。
59:デフォルトの名無しさん
08/05/02 00:46:28
>>56
Why didn't you use a verb in your sentense?
60:デフォルトの名無しさん
08/05/02 02:27:16
>>57
f2()内でglobalとして扱うなら、print x の前にglobal x とか入れるんじゃないかな。
61:デフォルトの名無しさん
08/05/02 03:34:58
MLのStackless Pythonの内容は酷い
62:デフォルトの名無しさん
08/05/02 04:28:51
長文ヌルーしてた…
63:デフォルトの名無しさん
08/05/02 06:37:46
関数内のローカル変数が
同名のグローバル変数を隠蔽しちゃうってやつだね
JavaScriptも似たような挙動だった気がする
初めてのPythonにはみっちり書いてあったはずから
参照できる人は見てみるのもいいかも
64:デフォルトの名無しさん
08/05/02 08:21:24
まともな入門書であればたいてい書いてある
65:デフォルトの名無しさん
08/05/02 08:43:42
書いてある本ものすごく少なそうなんですが
66:デフォルトの名無しさん
08/05/02 08:55:35
まともな入門書が少ないってことだね。
ちなみに「初めてのPython」はマルチバイト文字列の扱いについてまったく触れてないので、
「まともな入門書」に入りません。
67:デフォルトの名無しさん
08/05/02 09:15:07
そこでJython本ですよ
68:デフォルトの名無しさん
08/05/02 09:29:03
>>67
このスレ的にはどうなの?>Jython本
読んだ人感想プリーズ
ネットで読めるのは宗教っぽい妄信的な書評ばっかりで正直キモいと思っているんだが(www
69:デフォルトの名無しさん
08/05/02 10:20:29
民Pyにつづいてそれもか
70:デフォルトの名無しさん
08/05/02 10:28:51
宗教っぽいってこれ?
URLリンク(yoshiori.org)
確かにキモい(www
ていうかこのスレでnishioさんを「天才」とか「イケメン」とか言ってるやつってこいつじゃね?(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
71:デフォルトの名無しさん
08/05/02 10:30:20
やんわりと褒めるぐらいなら一般的な対応だけど
これはないわwwww
72:デフォルトの名無しさん
08/05/02 10:33:43
>>70
無色のネラーだからしょうがないよ(W
73:デフォルトの名無しさん
08/05/02 11:19:55
アニキ?
アッーー!
74:デフォルトの名無しさん
08/05/02 12:06:04
>stackless python でも「RuntimeError: maximum recursion depth exceeded」が発生します。
この人は何がしたいんだwwwwwwwwwwwwww
75:デフォルトの名無しさん
08/05/02 12:33:42
スタックがない=再帰やり放題じゃね?フィボナッチ数列が美しくかけるんじゃね?
76:デフォルトの名無しさん
08/05/02 20:05:06
予約した
imprtに期待age
77:デフォルトの名無しさん
08/05/03 17:52:49
URLリンク(jp.rubyist.net)
>ちなみに python 2.3 で末尾再帰版 fact を計算したところ、
>n = 900 までは計算でき、 n = 1000 でスタックが溢れた。
これって本当?
1000でスタックが溢れたら大問題だと思うけど
78:デフォルトの名無しさん
08/05/03 18:07:35
Py_DEFAULT_RECURSION_LIMITが1000だから当たり前
sys.setrecursionlimitで変更も可能
79:デフォルトの名無しさん
08/05/03 18:10:05
>>78
それはスタック溢れとは言わないだろ。
80:デフォルトの名無しさん
08/05/03 18:39:44
>>79
>>77の記事を書いた人に言ってあげなよ
81:デフォルトの名無しさん
08/05/03 18:46:51
うへえ、そういう調査もせずに「あふれた」って書いちゃうのか
82:デフォルトの名無しさん
08/05/03 18:53:05
2 つのプログラムの同一仕様検査の難しさ
83:デフォルトの名無しさん
08/05/03 19:31:58
Python2.3.5(2005-02-08リリース)の頃は
エラーメッセージが違うのかなと思って実行してみたけど、
RuntimeError: maximum recursion depth exceeded
と表示された。
84:デフォルトの名無しさん
08/05/03 19:32:08
rubyistはエラーメッセージ読まないのん?
85:デフォルトの名無しさん
08/05/03 19:43:21
処理系を信頼してないんだろ
86:デフォルトの名無しさん
08/05/03 19:57:34
>>84
奴らは英語ができない情報ニート
87:デフォルトの名無しさん
08/05/03 20:13:31
RuntimeError: maximum recursion depth exceeded
これを見た上で「あふれた」と言ったのか?
88:デフォルトの名無しさん
08/05/03 20:50:26
>>87
もしかしたら1000に達する前にMemoryError: stack overflowが出たのかもしれない。
89:デフォルトの名無しさん
08/05/03 22:37:54
んな小さとこで出るわけない
90:デフォルトの名無しさん
08/05/03 22:52:31
数字が一致していることからしてもRuntimeErrorのほうだろうな
91:デフォルトの名無しさん
08/05/03 23:17:05
モジュール名大改造PEPが更新
URLリンク(www.python.org)
92:デフォルトの名無しさん
08/05/03 23:17:44
「スタックが溢れた」と言っても差し支えないんじゃね?
Ruby では同じ文脈で stack overflow エラーが出るわけだから記事の話の流れからいっても自然だし
Python の sys.setrecursionlimit() の説明でもスタックという表現が使われている。
> setrecursionlimit( limit)
> Set the maximum depth of the Python interpreter stack to limit. This limit prevents
> infinite recursion from causing an overflow of the C stack and crashing Python.
個人的には>>80に同意。
93:デフォルトの名無しさん
08/05/04 06:52:48
limitを超えたんだから
あふれた
でいいと思う
94:デフォルトの名無しさん
08/05/04 13:46:59
どれぐらい末尾再帰ができるかどうかを調べているんだから
setrecursionlimitで値を変更するべきだと思うけど
95:デフォルトの名無しさん
08/05/04 13:49:57
あくまで limit を越えたのはスタック容量じゃなくて再帰回数だから
溢れたとは言わないだろうな。
96:デフォルトの名無しさん
08/05/04 14:13:36
お前ら、こういう話題が好きだったのか?
97:デフォルトの名無しさん
08/05/04 14:24:47
処理系での末尾再帰最適化って、そんなに難しいのかな...
なんかちょっと頭のいい人ならすぐできそうな気もするんだが...
(まぁ、俺には難しいんだが...)
98:デフォルトの名無しさん
08/05/04 14:28:38
まともな処理系なら JIT っぽいことしてると思ってるんだけど
(中間言語へのコンパイルかもしれないが)、
末尾再帰最適化を採用する事で
どれだけ JIT コンパイルのコストに影響が出るんだろうか。
99:デフォルトの名無しさん
08/05/04 14:47:23
「この回数再帰したら止めてね」という設定値を越えたから止めただけなんだから、
溢れたとは言わないな。「limitに達した」じゃないかな。
100:デフォルトの名無しさん
08/05/04 14:50:16
>>97
こんなの見つけた
URLリンク(aspn.activestate.com)
101:デフォルトの名無しさん
08/05/04 15:04:56
>>97
言語仕様と下位層による。
Rubyのブロック引数みたいなへんな言語仕様があると面倒だし、
末尾呼び出し最適化を考慮したスタックフレームを持つ機械の機械語や
そのような仮想機械へのコンパイルなら楽。
102:デフォルトの名無しさん
08/05/04 15:29:59
もはや言葉遊びですね^^
103:デフォルトの名無しさん
08/05/04 16:19:33
URLリンク(groups.google.co.jp)
面白いのを見つけました。でもPythonで書き直すには
どうしたら良いかわかりません…orz
upload.cgi を python で書き直すとしたら
どう書いたら良いでしょうか?どうぞよろしくお願いします.
104:デフォルトの名無しさん
08/05/04 16:54:21
細川wwww
105:103
08/05/04 16:55:34
dbm = SDBM.open('db/id',0644)
dbm[hash] = id
dbm.close
このへん、わけわからん orz
106:デフォルトの名無しさん
08/05/04 17:03:55
>>105
URLリンク(www.google.co.jp)
107:103
08/05/04 18:46:34
>>106
>>> db=shelve.open("db/id", "c")
>>> db["spam"]=1024
>>> db.close()
>>>
>>> db=shelve.open("db/id")
>>> db["spam"]
1024
こんなかんじですね。どもです。 ほかにdbmは
anydbm, pickle, shelve とか三種類くらいありました。
108:デフォルトの名無しさん
08/05/04 20:13:52
URLリンク(www.python.jp)
>>> import httplib, urllib
>>> params=urllib.urlencode({'id':1, 'imagedata':"spam"})
>>> headers={"Content-type": "application/x-www-form-urlencoded",
... "Accept": "text/plain"}
>>> conn=httplib.HTTPConnection("localhost")
>>> conn.request("POST", "/cgi-bin/upload_py.cgi", params, headers)
>>> res=conn.getresponse()
>>> res.status
500
ここを見ながら、client側の部分を書いてみたのですが
うまく行きません…どう書いたら良いでしょうか?
109:デフォルトの名無しさん
08/05/04 20:17:01
>>108
その upload_py.cgi の方に問題があるんじゃないの?
110:デフォルトの名無しさん
08/05/04 20:17:46
参考にしてるところがPython2.3.5用だから古くない?
111:デフォルトの名無しさん
08/05/04 20:30:41
>>110
それはないと思われ。
112:デフォルトの名無しさん
08/05/04 20:58:44
>>109
#File.open("data/#{hash}.png","w").print(imagedata)
fname = "%s.png" % hash
file(fname, 'w').write(imgdata)
ここの所が間違ってたみたいでした。w のとこが r になってました。
>>> res.status
302
と、変更したら返されるcodeが 500 から 302 になりました。
200 じゃない…ということは間違ってる…よくわからんです orz
113:103
08/05/04 21:16:12
db = shelve.open("tmp/id", "c")
db[hash] = id
db.close()
>>> import shelve
>>> db=shelve.open('tmp/id')
>>> db["e09f6a7593f8ae3994ea57e1117f67ec"]
'1'
上手くいきますた!
114:103
08/05/04 21:18:52
data = <<EOF
--#{boundary}\r
content-disposition: form-data; name="id"\r
\r
#{id}\r
--#{boundary}\r
content-disposition: form-data; name="imagedata"\r
\r
#{imagedata}\r
\r
--#{boundary}--\r
EOF
あと、もう一つだけ
バイナリデータをPOSTする場合はこの書式に沿って
組み立てないと駄目なのですか?
115:デフォルトの名無しさん
08/05/04 22:49:23
スレ違いっつーか板違いだ
116:デフォルトの名無しさん
08/05/04 23:22:17
お前は黙ってろ
117:デフォルトの名無しさん
08/05/04 23:27:57
内容的にWebProg板だな
118:デフォルトの名無しさん
08/05/05 01:02:08
103を見て絵に描いたような教えて君かと思ったが意外にガッツあるな。期待age。
>>112
302はリダイレクトだよ。レスポンスのLocation:ヘッダに次に読むべきURLが示されている。
詳しくはHTTPの仕様書を読むべし。
>>114
そんな希ガス。ググったら同じ質問をしている使徒を見つけた。一番下にコード例あり。
URLリンク(www.velocityreviews.com)
emailモジュールにもマルチパートのメッセージを作る機能があった希ガス。
URLリンク(docs.python.org)
この辺を参照のこと。
119:デフォルトの名無しさん
08/05/05 13:01:33
水曜日に最後のアルファ
120:デフォルトの名無しさん
08/05/05 13:23:29
chinpo
121:デフォルトの名無しさん
08/05/05 14:02:41
pythonをやろうと思ってるのだけど、入門には「みんなのpython」と「pythonプログラミング入門」どっちがいいかな?
プログラム自体は初めてじゃないです。
122:デフォルトの名無しさん
08/05/05 14:08:07
プログラム経験あるならネットのドキュメントだけで十分
本買うのが好きなら自分で手にとって選ぶのも好きになれ!
123:デフォルトの名無しさん
08/05/05 14:42:19
python plograming language和訳まだー
124:デフォルトの名無しさん
08/05/05 14:53:30
>>122
THANK YOU!!
基礎は書籍でしっかりやりたいから、自分で見てかうことにするよ
125:デフォルトの名無しさん
08/05/05 15:13:32
基礎からやりたいのならみんPyじゃね?
もう一つの方は流しすぎ
まあ自分で中身見て選ぶのが一番だけどな。
126:デフォルトの名無しさん
08/05/05 15:56:10
基礎だけ学びたいなら最近でたJythonの本でいいと思うよ
127:デフォルトの名無しさん
08/05/05 15:57:58
それはないわ(w
128:デフォルトの名無しさん
08/05/05 16:51:36
neet山
129:デフォルトの名無しさん
08/05/05 17:59:55
プログラミング経験者があえて書籍で入門するなら
初めてのPythonくらいの内容がないと無駄遣いに終わると思う
130:デフォルトの名無しさん
08/05/05 18:08:03
選択肢なんでほとんどないんだから、
立ち読みして比べりゃいいじゃん。
131:デフォルトの名無しさん
08/05/05 18:18:37
Jython本を買えば間違いは無い。正しくも無い。
132:デフォルトの名無しさん
08/05/05 18:39:50
プログラムしたことがあるのであればWebのチュートリアル読めばすむ話のような気がする
そんなに複雑じゃあない
本家のチュートリアルが読めるのであればなおよい
133:デフォルトの名無しさん
08/05/05 19:25:00
だから、本を買いたいんだろ。
だったらJython本しか無い。
134:デフォルトの名無しさん
08/05/05 20:24:53
俺も最初は本よりチュートリアルの方が良いと思う。
まず使えるようになることに焦点が合ってるし、内容に間違いが少ないから一番確実。
135:デフォルトの名無しさん
08/05/05 20:38:55
テストサーバ動かして python の cgi 動かしたいんだけど、Leopard の apache2 に mod_python 入れた人いる?
それとも素直に CGIHTTPServer.CGIHTTPRequestHandler つかってテストに使った方がいいかね。
136:デフォルトの名無しさん
08/05/05 21:12:20
>>135
MacPortsつかえばすぐ入るんじゃね?
137:デフォルトの名無しさん
08/05/05 21:19:44
>>135
Leopard の Apache2 でハマったばかりなんで、晒しとく。
スレリンク(mac板:683-693番)
洩れは結局 i386 な Apache2 を入れ直した。
138:デフォルトの名無しさん
08/05/05 21:40:17
Jython本買ってきました。
クソでした。
理由は言うまでもない。
139:デフォルトの名無しさん
08/05/05 21:42:25
言わないと工作としか思えないわ。
140:デフォルトの名無しさん
08/05/05 21:44:12
ぶっちゃけ作りが雑な気がするんだが>Jython本
図とか表とかほとんどないし。
文章ばっかり。
内容もあまりぱっとしないよねぇ...。
141:デフォルトの名無しさん
08/05/05 22:00:55
今出ている本って内容が古すぎたり中途半端だったりであまりおすすめできるものってないような。
何か作りながらチュートリアルかリファレンスを参照するのが効率的かもね。
142:デフォルトの名無しさん
08/05/05 22:58:22
Jython本はコードが見難いね、説明してるのがどれだかわかりにくい
編集がちょっと丁寧な仕事すればだいぶ違ったと思う
内容的には初心者な俺には勉強になってる
でも中途半端だな、対象読者一体どこだよ、とは思った
Python全然知らないときつくないか?Javaも結構知ってないときつくないか?
143:デフォルトの名無しさん
08/05/05 23:13:50
Jython本の執筆者のtwitter読むと解るけど、かなりの突貫執筆だったようだ。
あの若さでこれだけの仕事したんだから、まあ認めてやってもいいんじゃないか?
144:デフォルトの名無しさん
08/05/05 23:20:51
イケメンハッカー信者はもういいよ
145:デフォルトの名無しさん
08/05/05 23:22:23
本買う人にとっては執筆に至る経緯なんて関係ないしなぁ
146:デフォルトの名無しさん
08/05/05 23:24:27
まあ信者も認めるほどの出来だってことだよ。
147:デフォルトの名無しさん
08/05/06 00:09:57
宗教論はもういいよ。イケメンハッカーの話はyosoでやれ。
148:デフォルトの名無しさん
08/05/06 06:21:33
粗悪本乱発しすぎ
149:デフォルトの名無しさん
08/05/06 06:40:46
Jython本ほど最高の本は無いよ。
書いてあることがスラスラと頭の中に入ってきて、
まるでコードが踊ってるみたい。
びっくりするようなイノベーションも体験できて、
いいと思うんだけどなあ。
最新の本だから最新のことが載っていて安心だし。
150:デフォルトの名無しさん
08/05/06 06:42:36
さっき読んでたらすぐ眠たくなって寝てしまったが
151:150
08/05/06 06:48:52
でも、起きてからすらすらと本の内容が浮かんできたな
152:デフォルトの名無しさん
08/05/06 07:50:20
今知ったんだが、彼って自分のことイケメンなんぞと言ってるんだ!
153:デフォルトの名無しさん
08/05/06 07:56:24
IKEMEN
154:デフォルトの名無しさん
08/05/06 08:36:13
流れが意味不
155:デフォルトの名無しさん
08/05/06 09:37:43
stackless pythonとpsycoは共存できないんだな。
残念だ。
156:135
08/05/06 12:19:12
とりあえず mod_python ダウンロードしてきて
./configure
vi src/Makefile
LDFLAGS= 行の "-arch i386 -arch ppc" を "-arch x86_64" で置換。
make
file src/.lib/mod_python.so してみると、
src/.libs/mod_python.so: Mach-O 64-bit bundle x86_64
と表示されるので 64ビット版にはなっているようだ。
と、ここまではいい.
sudo /etc/apache2/httpd.conf で
LoadModule python_module libexec/apache2/mod_python.so
って入れてから
httpd -t
やるとシンタックスエラーでるのよね。。。。
って、これ単なる設定の問題か。
>>137
なんて良いタイミング!参考にしてみるよ
157:デフォルトの名無しさん
08/05/06 17:26:02
Webのチュートリアルは日本語の品質がいまいちな部分がない?
結局は英語にあたらないと意味が取れない事がよくある。
書籍のチュートリアルの方が日本語がいいし、読みたいところに
すぐ飛べるのでいいと思う。
他言語経験者なら、これ読めばある程度できるようになるんじゃ
ない?
158:デフォルトの名無しさん
08/05/06 17:32:25
他言語経験者なら普通に公式チュートリアルでいいだろ
ねえなんで本買わせようとすんの?
159:デフォルトの名無しさん
08/05/06 18:02:06
本のほうが読みやすいから
160:デフォルトの名無しさん
08/05/06 18:34:16
Webの方がコピペできていい
161:デフォルトの名無しさん
08/05/06 19:06:39
本が欲しいと言っているから。
162:デフォルトの名無しさん
08/05/06 19:25:07
検索できる分デジタル版の方がいいけどね
でもチュートリアルの日本語書籍版はチュートリアルの読み方の部分が秀逸なので
立ち読みだけでもしておくといいよ
163:デフォルトの名無しさん
08/05/06 19:31:36
>>157
> Webのチュートリアルは日本語の品質がいまいちな部分がない?
>
> 結局は英語にあたらないと意味が取れない事がよくある。
ここなり翻訳者宛のメールなりで問題点を具体的に報告すれば改善されると思われ。
164:デフォルトの名無しさん
08/05/06 19:33:08
いま >163 がとてもいいことを言った。
165:デフォルトの名無しさん
08/05/06 19:41:13
本を買って欲しいから。
166:157
08/05/06 19:48:43
>163がとてもいいこと言ったと思います。
翻訳者あてのメールは敷居が高くても、ここになら書けるなぁと思った。
(でも私は書籍版買っちゃったから今後はWeb版読みに行く事は中々
ないはず)
167:デフォルトの名無しさん
08/05/06 20:08:55
>>158
俺は他言語経験者で、公式チュートリアルで入門したけど本も買って勉強したよ。
Mark Lutz の Programming Python の第1版の原著を買った(確か当時は和書が1つもなかった)。
理由は「書籍から入手できる情報」≠「オンラインで入手できる情報」だから。
あと、1冊まるまる最初から最後まできちんと勉強することで「やり終えた!」という充実感があった。
これは結構重要なポイントのような気がする。
絶対本を買うべきだとは思わない。買いたい人は買えばいいと思われ。
ちなみに上記の本には誤植が多かったので読み進めるのと並行して全部メモしておいた。
読み終えたあとにまとめて Mark Lutz に報告したらオライリーの担当者からお礼のメールが来て
オライリーの本から好きなのを1冊プレゼントすると言われた。そんなの初めての経験だったから
意味が分からなくて「お金払わなくていいの?」とか聞いちゃったりして(無論無料で送ってくれた)。
168:デフォルトの名無しさん
08/05/06 21:29:18
これはいい話
169:デフォルトの名無しさん
08/05/06 21:31:30
threadって計算速度の向上に効果ある?
a = b1 + b2の計算を(a,b1,b2はarray)
b1とb2をthreadで計算して,
それぞれ計算終了後に足すというプログラムを作ったんだけど,
普通にb1とb2をメインスレッドで順番に求めて足した方が早かった...
ちなみにb1とb2の計算はダミーのforループ10000回です.
170:デフォルトの名無しさん
08/05/06 21:43:49
>>169
ダミーループのような、単純処理を連続的に行う場合は、threadのメリットは少ないと思われ。
有り難味があるケースは、
・入力待ちの間に、他の処理をさせておきたい
・ネットワークを表現する際に、各処理を独立のモジュールみたいに動かしたい
など。
171:デフォルトの名無しさん
08/05/06 21:45:50
>>167
第3版が手元にあるけど1552ページある。このサイズをまるまる勉強したとし
たら、尊敬します。すげー。
172:デフォルトの名無しさん
08/05/06 22:39:53
>>170
なる。やっぱりそんな気はしてた。。。
サンクス
173:デフォルトの名無しさん
08/05/06 22:49:58
>>171
そんなにあったっけと思って書誌情報を確認したら第1版は902ページだった。
174:デフォルトの名無しさん
08/05/06 23:13:06
>>169
マルチコアの場合は、計算スレッドを複数に分けてやると速くなったりする
あと計算規模が小さいとスレッドの生成・破棄のコストのせいで
高速化の効果が見えないよ
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()
357:デフォルトの名無しさん
08/05/19 21:34:44
apacheならerror_log(error.log)に出なかったっけ
358:デフォルトの名無しさん
08/05/19 21:38:05
pychecker, pylintあたりで文法チェックしといた方がいいかもね
359:デフォルトの名無しさん
08/05/20 06:24:41
>>355でFAもいいところなわけだが
360:デフォルトの名無しさん
08/05/20 13:59:12
URLリンク(codepad.org)
関数の引数って参照渡しなの?
Traclight/plugins/themaengine/api.py
あとTracってAPacheがないと動かせないですか?
PythonをUSBメモリに入れて持ち運びたい(できればtracも持ち運びたひ…)
361:デフォルトの名無しさん
08/05/20 14:50:11
>>360
>関数の引数って参照渡しなの?
そうだよ。入門書嫁。
362:デフォルトの名無しさん
08/05/20 14:54:54
どんな入門書だよ
363:デフォルトの名無しさん
08/05/20 14:55:42
>>360
いっちゃうと代入も何もかもぜんぶ参照渡しです。
だから逆に参照渡しという概念がでてこない。
TracはFastCGIやWSGIでも動作するからApacheじゃなくてもいい。
lightyなんかいいとおもう。
あとWindows版Pythonならパスが変わっても動作するはず。
364:デフォルトの名無しさん
08/05/20 15:08:52
>>362
まともな入門書にはたいてい書いてあるよ
365:デフォルトの名無しさん
08/05/20 15:09:35
Pythonって参照渡しって言うのかな
>>> def foo(x): x = 2
...
>>> a = 1
>>> foo(a)
>>> a
1
いわゆる参照渡しだと、aの値が書き換えられるんじゃないの
366:デフォルトの名無しさん
08/05/20 15:10:56
>>365
def foo(&x): x = 2
これでOK
まともな入門書にはかいてあるよ
367:デフォルトの名無しさん
08/05/20 15:15:57
>>366
つまり、「何もかもぜんぶ参照渡し」というわけでなく、
特に指定しなければ値渡し、ということじゃない?
368:デフォルトの名無しさん
08/05/20 15:16:42
参照をリファレンスという意味で使ったなら
ある意味正しいと思う
369:デフォルトの名無しさん
08/05/20 15:21:18
>>> def foo(&x): x = 2
SyntaxError: invalid syntax
ついに嘘書く奴が出てきたよ
370:デフォルトの名無しさん
08/05/20 15:30:59
>>365
def foo(x):
↑ここのxには確かにa = 1と同一の1が渡る。
x = 2
↑でもこれはその1を2に置き換えるのではなく
xの参照先を2に変更することになるのでaは1のまま。
371:デフォルトの名無しさん
08/05/20 15:31:48
>>365
Pythonで数字はイデア界にあるから
書き換え不能なんですよ。
372:デフォルトの名無しさん
08/05/20 15:33:56
>>369
嘘を嘘と見抜く練習をしような(w
373:デフォルトの名無しさん
08/05/20 15:49:35
つまり = は代入ではなく束縛ってことか
ところで
>>> lst = [0]
>>> lst[0] = lst
>>> lst
[[..]]
>>> def p(x): print x
>>> [p(x) for x in lst]
[[..]]
[None]
なんぞこれ
374:デフォルトの名無しさん
08/05/20 15:55:14
循環参照は[...]になるのか。賢いな。
375:デフォルトの名無しさん
08/05/20 18:42:18
>>370-371
えーと、本当に参照渡しの意味わかってんの?
fooの仮引数がxと宣言されているが、aを渡したときにそのxがaのエイリアスとして
機能する(つまりxがaと同等である)ようなものが参照渡しなんだが。
FORTRANはデフォで参照渡しだし、C++やC#は参照渡しもサポートする。
Pythonの場合、a, xは同一のオブジェクトを指している*別変数*だから、
xへの代入はaに影響を与えない。
そういうのは参照渡しとはいえないでしょ。
376:デフォルトの名無しさん
08/05/20 19:00:23
>>365
引数そのものはimmutable(不変)なので、関数内で書き換え不可。
この場合の引数とは、変数のアドレスのこと。
変数が指しているデータを書き換えたい場合は、例えば以下のように出来る。
def bar(x):x[0] = 2
a = [1,2,3]
bar(a)
print a # --> [2, 2, 3]
377:デフォルトの名無しさん
08/05/20 19:14:55
ミュータブルorイミュータブルというのはオブジェクトの特性であって
変数の特性ではない
378:デフォルトの名無しさん
08/05/20 20:15:06
そもそもPythonのオブジェクトには代入演算子ないし
379:デフォルトの名無しさん
08/05/20 20:36:17
Mr.NishioのJython本を読むと、変数はオブジェクトへのリファレンス貼る
ってことが書いてある。
買って読んでみなよ。
380:デフォルトの名無しさん
08/05/20 21:01:56
> 変数はオブジェクトへのリファレンス貼る
俺の頭が弱いのか? 何が言いたいのかわからん
381:デフォルトの名無しさん
08/05/20 21:05:15
C風に言えば、Pythonの変数はオブジェクトへのポインタ
代入はポインタのコピー
関数呼び出しは全部値渡し
Javaも値型(基本データ型)以外は一緒
382:デフォルトの名無しさん
08/05/20 21:12:01
>>360
> 関数の引数って参照渡しなの?
違います。
URLリンク(www.python.org)
> Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects,
> there's no alias between an argument name in the caller and callee, and so no call-by-reference per se.
(引数は Python でいうところの代入によって渡されることを思い出して下さい。代入は単にオブジェクトへの参照を作るものなので、
呼び出す側の引数名と呼び出された側の引数名のあいだにはエイリアスはなく、「参照による呼び出し」も本質的に存在しません。)
383:デフォルトの名無しさん
08/05/20 21:44:09
渡す物がlistになると挙動が変わるはず
384:デフォルトの名無しさん
08/05/20 21:47:37
>>383
リストだろうが何だろうが、何も変わらない。
>>> def f(x): x = [1,2,3]
...
>>> a = []
>>> f(a)
>>> a
[]
>>>
385:デフォルトの名無しさん
08/05/20 21:58:26
>>> m = []
>>> def a(x): x.append(3)
>>> a(m)
>>> a(m)
>>> m
[3, 3]
これは何が起きているんだ?
俺の頭が弱いのか? 何が言いたいのかわからん
386:デフォルトの名無しさん
08/05/20 21:59:18
>>385
リストだろうが何だろうが、何も変わらない。
>>> def f(&x): x = [1,2,3]
...
>>> a = []
>>> f(a)
>>> a
[1,2,3]
>>>
387:デフォルトの名無しさん
08/05/20 22:04:59
Pythonを学ぼうと思うのですが
URLリンク(python.rdy.jp)
で何を選べばいいのかわかりません。
388:デフォルトの名無しさん
08/05/20 22:06:34
他言語経験は?
389:デフォルトの名無しさん
08/05/20 22:09:35
>>385
頭が弱いんじゃなくて、基本が理解できてない。
一体どんな教材でPython覚えたんだよ?
390:デフォルトの名無しさん
08/05/20 22:14:55
>>385
>>384の例は、代入によって「変数自体」を変更している
変数の変更とは、変数が持っていたオブジェクトへの参照を破棄し、
別のオブジェクトを指すようにする、ということだ
>>385の例は、破壊的メソッドによって、変数によって指されている
「オブジェクトの中身」を変更している。変数自体は何も書き換わっていない
391:デフォルトの名無しさん
08/05/20 22:25:40
>>388
初めてのC#を読みました。
作ったソフトウェアは2つほどでオブジェクト指向はある程度理解しているつもりです。
392:デフォルトの名無しさん
08/05/20 22:26:09
>>387
名著だ
URLリンク(www.amazon.co.jp)
393:デフォルトの名無しさん
08/05/20 22:26:37
>>392
ありがとうございます。
394:デフォルトの名無しさん
08/05/20 22:28:18
>>392
表紙でtypoが名著とはこれ如何に
395:デフォルトの名無しさん
08/05/20 22:31:19
ほんとだ噴いた
396:デフォルトの名無しさん
08/05/20 22:34:29
>>392
家宝にさせていただきます
397:デフォルトの名無しさん
08/05/20 22:45:04
>>391
プログラミング経験有りなら書籍ではないけれど
本家のチュートリアルの邦訳をまず読んでみれば
URLリンク(www.python.jp)
398:デフォルトの名無しさん
08/05/20 22:45:52
x = 23
はxのポインタの値が書き換わる。
x.append(3)
はポインタの先の値が書き換わる。
399:デフォルトの名無しさん
08/05/20 22:51:39
>>376と>>384の挙動の違いがよくわからない
400:デフォルトの名無しさん
08/05/20 22:54:11
>>399
>>376もポインタが指しているオブジェクトの中身を書き換えているだけだ
xとaは別の変数だが同じオブジェクト(リスト)を指しているから、
x経由で変更したオブジェクトをaから参照しても
同じように見えるのは当たり前だ
401:デフォルトの名無しさん
08/05/20 23:02:28
>>400
>>384の場合はx=[1,2,3]で新たにリストのオブジェクトを生成して、
変数xはそれを指すから、結果的に変数aの指すオブジェクトの中身は
書き換えられなかったってことでいいのかな?
402:デフォルトの名無しさん
08/05/20 23:04:21
>>401
うん
403:デフォルトの名無しさん
08/05/20 23:15:12
なるほど、スッとした。さんくす。
404:デフォルトの名無しさん
08/05/20 23:29:50
やっぱりスッとしない。
405:デフォルトの名無しさん
08/05/21 00:02:10
>>392
Amazonって、ランキングが出るじゃん。見たんだけどさ。
この時期でこのランキングはないわ。
名著なのに売れないなんておかしいな。
芸術作品ですか。
406:デフォルトの名無しさん
08/05/21 00:12:37
>>70のリンクの人から見ると名著なんだよ
407:デフォルトの名無しさん
08/05/21 00:20:13
>>70のリンクの人のせいで売れないんじゃね?
まるで逆宣伝だし。
408:デフォルトの名無しさん
08/05/21 00:27:14
そもそも対象となる層が少なすぎる感じがする
409:デフォルトの名無しさん
08/05/21 00:28:39
日本人限定だしね
410:デフォルトの名無しさん
08/05/21 00:39:27
そのうえ変な人に気に入られてるようじゃ相当マイナスだね。
411:デフォルトの名無しさん
08/05/21 01:00:29
Jython使うとPOIも使えると思うのですが
CPythonからPOIを使えるようにはできませんか?
412:デフォルトの名無しさん
08/05/21 01:08:00
Java使え
413:デフォルトの名無しさん
08/05/21 01:10:44
替わりにwin32comかpyExceleratorを使うとか
414:デフォルトの名無しさん
08/05/21 02:00:14
win32comもpyExceleratorは使ったことがあるのですが
どっちもいまいちなのでPOIを使いたいんですけど
Javaは使いたくないんです
415:デフォルトの名無しさん
08/05/21 02:30:37
GroovyとJRubyやるからどっかいけ
416:デフォルトの名無しさん
08/05/21 02:33:37
>414
ならばCPythonでJava classファイルを使えるようにする仕掛けをこさえるしかなかろ
それって結局JavaVMの特殊な独自実装になるような気もするが。
となると「Javaを使わない」という目的からは厳密には外れるな。
あるいはPure PythonでPOIを書き直すとか
417:デフォルトの名無しさん
08/05/21 02:50:31
そうですね
そうします
418:デフォルトの名無しさん
08/05/21 03:46:21
死ねばいいよ
419:デフォルトの名無しさん
08/05/21 04:20:22
死ねって・・・
Pythonの信者の人が反社会的っていうのはほんとなんですね
420:デフォルトの名無しさん
08/05/21 08:00:56
Jython本を読むと心が洗われます
421:デフォルトの名無しさん
08/05/21 09:01:36
>>406
これはむしろ愛と呼べる代物だ。
温泉ではアッー!な光景が繰り広げられるに違いない。
422:デフォルトの名無しさん
08/05/21 11:30:56
>>421
結論から言うと、今回のRuby Kaigiのテーマは"愛"。
:
Ruby愛以外に何か付け加えるものがあるとするならば、あとは、覚悟。
423:デフォルトの名無しさん
08/05/21 11:44:02
イケメンハッカーはJRubyの本を出せばよかったんじゃね?
424:デフォルトの名無しさん
08/05/21 13:12:48
Pythonソースコード完全解説とかなら普通に読みたいな
425:デフォルトの名無しさん
08/05/21 13:14:46
自分でコードも読めない奴は、技術者としては失格だと思うがな。
426:デフォルトの名無しさん
08/05/21 14:17:31
neet山
427:デフォルトの名無しさん
08/05/21 14:32:01
RubyConsortium
Rubycon
不良品乱発
428:デフォルトの名無しさん
08/05/22 03:50:04
会社で作るソフトに組み込むスクリプトとしてぜひ Python を押したいんだけど、
「(スクリプトの)逆アセンブルがすげー簡単ぽいけど、どうなのよ」みたいなこと言われたんだ。
そういうわけで、会社を納得させるべく、「思いつきでちょっと解析したぐらいでは分からない程度」
に Python スクリプトの難読化について考えてみたい。
429:デフォルトの名無しさん
08/05/22 04:01:50
(自分がパッと思いつく程度の)スクリプトの解析方法に付いて考えてみる。
A. python スクリプトファイルが丸見えの場合
.py ソースは問題外。
.pyc は dis モジュールに食わせてダンプして終了。しかもドキュメンテーション文字列付き。
.pyo も dis モジュールに食わせて終了。
B. スクリプトファイルが見えない場合
Python##.dll を改造してアプリケーション付属のDLLと差し替えて、
インポートしたモジュールのコードオブジェクトをダンプするなり別ファイルに書き出すなりする
C.コンパイル済みモジュールファイルが丸見えだが、dis に食わせても解析失敗する場合
カスタム Python を使用している事を疑う.
アプリケーション付属の Python##.dll を参照するようにして python.exe を実行し、
自作のスクリプトを pyc に変換させ、純正の pyc と比べてみる。
430:デフォルトの名無しさん
08/05/22 04:17:33
そう考えると、
•独自のインポータを sys.path_hooks に組み込んで自作アーカイブからスクリプトファイルを読み出すようにする
•独自アーカイブに含まれているスクリプトは、カスタム Python を使って読み書きするための特殊 pyc
•カスタムといっても、ようは pyc の読み書き部分だけつじつまを合わせれば良い
•従って、改造するのは marshal.c あたり?
431:デフォルトの名無しさん
08/05/22 05:37:37
>>428
「解析されて何か問題でも?」と答えておけ。
本当に解析されて困るプログラムなんて、この世にそれほど存在しないだろ。