Pythonのお勉強 Part22
at TECH
1:デフォルトの名無しさん
07/11/30 21:49:38
Python オフィシャルサイト
URLリンク(www.python.org)
日本Pythonユーザ会
URLリンク(www.python.jp)
FrontPage - Pythonのお勉強
URLリンク(python.rdy.jp)
前スレ
スレリンク(tech板)
◆関連スレッド
Microsoft IronPython 1.0
スレリンク(tech板)
Python の宿題ここで答えます Part 1
スレリンク(tech板)
2ch検索: [python]
URLリンク(find.2ch.net)
◆関連サイト
Python ドキュメント
URLリンク(www.python.jp)
Index of Python Enhancement Proposals (PEPs)
URLリンク(www.python.org)
参考サイト - Pythonのお勉強
URLリンク(python.rdy.jp)
.
2:デフォルトの名無しさん
07/11/30 21:59:11
人類は21才から22才になった
3:デフォルトの名無しさん
07/11/30 22:15:43
関連書籍等
IronPython in Action
URLリンク(www.manning.com)
wxPython
URLリンク(www.wxpython.org)
wxPython in Action
URLリンク(www.manning.com)
URLリンク(www.amazon.com)
Django
URLリンク(www.amazon.com)
TurboGears
URLリンク(www.amazon.com)
Pylons
URLリンク(www.amazon.com)
4:デフォルトの名無しさん
07/12/01 09:19:48
>>1
なまら乙
5:デフォルトの名無しさん
07/12/01 10:14:21
>>1
>FrontPage - Pythonのお勉強
>URLリンク(python.rdy.jp)
百度に飛ばされる
6:デフォルトの名無しさん
07/12/01 12:56:59
部外者にはみんPy側が大人気ないように感じる
7:デフォルトの名無しさん
07/12/01 12:59:50
へぇ・・・
8:デフォルトの名無しさん
07/12/01 13:04:16
みんPy側なんていたのか・・・
荒らしさんは対立を作るのに忙しいな
9:デフォルトの名無しさん
07/12/01 13:45:20
Python Challenge
URLリンク(www.pythonchallenge.com)
10:デフォルトの名無しさん
07/12/01 16:24:33
>>1
乙Py
11:デフォルトの名無しさん
07/12/01 16:53:05
Pythonオワタ・・・orz
俺もう乗り換えるわ
Running the snippets above, I got the following results:
Python 2.5.1: 31.507s
Ruby 1.9.0: 11.934s
The Ruby code:
def fib(n)
if n == 0 || n == 1
n
else
fib(n-1) + fib(n-2)
end
end
36.times do |i|
puts "n=#{i} => #{fib(i)}"
end
And the Python equivalent:
def fib(n):
if n == 0 or n == 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(36):
print "n=%d => %d" % (i, fib(i))
12:デフォルトの名無しさん
07/12/01 17:00:31
なにかのデータをitervaluesで取り出したもの使ってるところで
keyerrorとかでてくるのだけど、これは対象が存在しない時出てくると考えていいの?
13:デフォルトの名無しさん
07/12/01 17:02:46
>>11
てんさい
URLリンク(cgi.cse.unsw.edu.au)
14:デフォルトの名無しさん
07/12/01 18:45:48
Pythonオワタ・・・orz
俺もう乗り換えるわ
Running the snippets above, I got the following results:
Python 2.5.1: 31.507s
Ruby 1.9.0: 11.934s
The Ruby code:
def fib(n)
if n == 0 || n == 1
n
else
fib(n-1) + fib(n-2)
end
end
36.times do |i|
puts "n=#{i} => #{fib(i)}"
end
And the Python equivalent:
def fib(n):
if n == 0 or n == 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(36):
print "n=%d => %d" % (i, fib(i))
15:デフォルトの名無しさん
07/12/01 18:58:53
Ruby (1.8.5) 64.26s
Python (2.4) 25.16s
Haskell (GHC 6.8) 0.48s
Parallel Haskell (GHC 6.8) 0.42s
16:デフォルトの名無しさん
07/12/01 19:14:33
速度だけ比較してモナぁ
17:デフォルトの名無しさん
07/12/01 19:17:15
Ruby 1.9ってRails動くんですか?
18:デフォルトの名無しさん
07/12/01 19:29:15
Web板
Rubyスレ
19:デフォルトの名無しさん
07/12/01 19:47:55
>>17
RubyってRailsで動いてるんじゃないのか?
20:デフォルトの名無しさん
07/12/01 20:20:18
fib みたいな例だと psyco の効果が良くわかるな
21:デフォルトの名無しさん
07/12/01 20:38:42
比較しようにもhaskellの実行ができない。
どうやったらいいの?今現在全然知らないのでコピペしただけ。
ghc
h.hs:6:7: Not in scope: `forM_'
h.hs:7:1: Not in scope: `printf'
hugs98
ERROR "h.hs":6 - Undefined variable "printf"
pythonはタブの整形が面倒だった。
rubyはそのまま実行できた。
ボロマシンなので閾値を30にまけておいた。
ruby h.rb 5.18s user 0.00s system 81% cpu 6.331 total
python h.py 2.42s user 0.01s system 72% cpu 3.347 total
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux] (dev-lang/ruby-1.8.6_p110-r2)
Python 2.5.1 (dev-lang/python-2.5.1-r4)
22:デフォルトの名無しさん
07/12/01 21:06:21
スレ違いだから
いい加減にして
23:デフォルトの名無しさん
07/12/01 21:14:09
Part22 作り直すか
24:デフォルトの名無しさん
07/12/01 21:17:15
>>23
潔癖すぎだろw
25:デフォルトの名無しさん
07/12/01 21:22:06
>>5
ごめんなさい。
百度があまりにもうるさいので、それっぽいIPだと
向こうにお帰り願う設定になってますので、
その影響を受けているのかと。
26:デフォルトの名無しさん
07/12/01 21:22:19
>>14
アンチRuby工作員乙
27:デフォルトの名無しさん
07/12/01 22:55:22
すれ違いでごめんよ、解決したのでメモだけ置かして…。
これであってるか知らないけど、次のライブラリをインポートしないとダメだった模様だ、が小難しいな…
import Control.Monad (forM_)
import Text.Printf
結果
ruby h.rb 5.07s user 0.00s system 80% cpu 6.295 total /インタプリタ
python h.py 2.40s user 0.01s system 73% cpu 3.261 total /インタプリタ
runghc h.hs 6.21s user 0.07s system 82% cpu 7.652 total /インタプリタ
ghc h.hs 0.56s user 0.10s system 90% cpu 0.728 total /コンパイル
./a.out 0.40s user 0.00s system 49% cpu 0.817 total /ネイティブコード
The Glorious Glasgow Haskell Compilation System, version 6.6.1 (dev-lang/ghc-6.6.1)
俺は見やすいpythonが好きなので他は使わないと思うけど…
28:デフォルトの名無しさん
07/12/02 00:03:03
>>14
コードが糞すぎwww
ジェネレーターを使え。
29:デフォルトの名無しさん
07/12/02 00:04:05
>>13の例だとRubyはともかくHaskellと比較する意味はない気がする。
よく知らんがHaskellだと↓くらいの計算量じゃないかと。
def fib(n):
return fib2(n, 0, 1)
def fib2(n, a, b):
if n == 0:
return a
else:
return fib2(n-1, b, a+b)
ところでWindowsにPythonの新しいバージョンを入れようと思うんだけど
ActivePythonを公式+αという感覚で入れても問題ない?
それとも公式を入れておいたほうが無難?
30:デフォルトの名無しさん
07/12/02 02:12:14
>>11
Python 2.5.1
17.935
Python 2.5.1 + psyco
1.264
31:デフォルトの名無しさん
07/12/02 08:48:18
こいつをpythonのプログラムに取り付けろ。すごいぞお、pythonの戦闘力は数倍に跳ね上がる!
32:デフォルトの名無しさん
07/12/02 10:09:11
とうさん…
数倍っつーか一桁変わってますけど…
33:デフォルトの名無しさん
07/12/02 10:13:44
単純なコードでは著しく高速化されても、
実用的なコードではほとんど高速化は期待できないのに・・・
父さん・・・酸素欠乏症にかかって・・・!
34:デフォルトの名無しさん
07/12/02 11:36:28
ニートの僕はpythonで幸せになれますか?
35:デフォルトの名無しさん
07/12/02 11:52:28
もちろん
Pythonは万能です
36:デフォルトの名無しさん
07/12/02 13:29:10
\(^o^)/ニートソツギョー
37:デフォルトの名無しさん
07/12/02 13:31:40
ニートが就職しても社内ニートになるだけです。
38:デフォルトの名無しさん
07/12/02 18:44:13
\(^o^)/マドギワゾクー
39:デフォルトの名無しさん
07/12/02 20:13:13
( ゚Д゚)っ缶詰
40:デフォルトの名無しさん
07/12/02 20:30:40
=================
|---------------|
|.;.:, |
|,.:.; SOYLE|
|.';.; |
|---------------|
=================
41:デフォルトの名無しさん
07/12/02 21:34:00
でかいタコ部屋ですね え、加工済m
42:デフォルトの名無しさん
07/12/02 23:11:54
SPAM SPAM SAPM and SPAM
43:デフォルトの名無しさん
07/12/02 23:27:29
CentOSでyumで管理されてるPythonはちょっと前のものですが、
ソースビルドしてPython2.5.1を入れてみました。
元から入ってたのは /usr/bin/python
ビルドして出来たものは /usr/local/bin/python
で分かれています。
一応動いているみたいなのですが、
上書きして書き換えるのはやめておいたほうが良いのでしょうか?
CentOSのその他の管理ツールで内部的に
Pythonのスクリプトを使っているものがあるとかいう
話を聴いたことがあるのでそっちに影響出る可能性があるのかなと。
あとyumの方が最新のバージョンにならないのもそういう理由ですよね?
44:デフォルトの名無しさん
07/12/02 23:51:01
上書きすると、パッケージ管理システムが管理してる情報と
実際に入ってるモノが食い違うことになるんじゃ…
45:デフォルトの名無しさん
07/12/03 00:16:30
linuxあんま使わないけどyumとかapt-getとかのパッケージ管理システムってディストリビューション毎の管理・メンテナンスでしょ
アップデートしても最新にならないなら何か問題があるとか、単にテスト中だとかその辺だから大人しく待っとけ
というかpython25とか名前付ければ良いんじゃないかな。せっかくlnあるんだから
46:デフォルトの名無しさん
07/12/03 00:37:34
まず、上書きを必要とする理由を書いて欲しい。
俺だったら、まず$HOMEに入れることを考える。
大抵はこれで事が済む。
/usr/localに入れるとしても、
/usr/local/bin/pythonは消して、/usr/local/bin/python2.5だけ残す。
(初期状態だと、/usr/local/binにはPATHが通ってないと思うが、念のため)
(あとPATHがゴチャゴチャしてきた時の防御にもなる)
/usrのは絶対さわらない。
47:デフォルトの名無しさん
07/12/03 01:21:55
>>43
上書きは止めた方が良いです、というかRed Hat系では
>CentOSのその他の管理ツールで内部的にPythonのスクリプトを使っている
この理由で絶対駄目なのでは。
Debian不安定版では2.4と2.5が分かれてインストールされています。
/usr/lib/python2.4と/usr/bin/python2.4と
/usr/lib/python2.5と/usr/bin/python2.5。
/usr/bin/pythonは/usr/bin/python2.4。
それと、Pythonはマイナーバージョンの違いは無視されると記憶しています。
Python-2.5とPython-2.5.1はとちらも/usr/lib/python2.5になる。
なので危険ですよ。
48:デフォルトの名無しさん
07/12/03 03:19:49
virtual-pythonじゃダメ?
49:デフォルトの名無しさん
07/12/03 03:28:57
>>47
マイナーバージョンアップはバージョンアップすればいいんじゃないの?
50:デフォルトの名無しさん
07/12/03 06:36:55
>>49
ファイル差分があってもパッケージ管理システムからはわからないから
ゴミが残ったりする。
まーsetup.pyやコピーで自前でライブラリ追加してもいっしょだし
ディレクトリが分散してるわけでもないから大事にはならないけど。
51:デフォルトの名無しさん
07/12/03 06:48:43
>>46
おっしゃるとおりやっぱり危険ですよね。
/usr/local/bin には path が通っていないので助かっていますが
/usr/local/bin/python2.5 が /usr/local/bin/pyton に ln -s されているので
念のため /usr/local/bin/pyton を消した方が無難ですね。
上書きしたかった理由は、
このあと Django とかを最新版でインストールするつもりで
その辺の setup するときに旧バージョンの python が
自分の意図しないときに実行されると困ると思ったからです。
(CentOS x86-64 の Python 最新は 2.3.4 なんですよね orz)
きっと Django の方でも /usr/local/bin/python2.5 の方を使うように
設定する場所はあると思うのでそっちで探してみることにします。
みなさんありがとうございます
52:デフォルトの名無しさん
07/12/03 23:41:30
前スレ974:
> # 自分で例外ちゃんと処理するしかない?
するしかない。CP932で表示できないものはいかんともしがたい。端末依存。
簡単なのはエラーハンドリングを "replace" 等にして自前でエンコードすること。
print (u'ほげ%sふが' % u'hogÉfuga').encode(sys.stdout.encoding, errors="replace")
別解は Unicode-aware な端末ソフトを使う。
53:デフォルトの名無しさん
07/12/03 23:42:44
あ、ゴメス。
encode(sys.stdout.encoding, "replace")
の間違い。
54:デフォルトの名無しさん
07/12/04 21:05:10
981
3. 以下のコードのような感じで、変数名をstringで取り出すにはどうすればいいでしょう。
>>> for val in foo bar:
>>> print val # <= ここで、変数の中身じゃなくて変数名を取り出したい。
"foo"
"bar"
>>> foo = 3
>>> bar = 'hoge'
>>> for val in (foo, bar):
... print val
...
3
hoge
>>> locals()
{'bar': 'hoge', 'val': 'hoge', '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None}
>>> for val in (foo, bar):
... print locals()
...
{'bar': 'hoge', 'val': 3, '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None}
{'bar': 'hoge', 'val': 'hoge', '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None}
>>>
55:デフォルトの名無しさん
07/12/04 23:03:17
普通のやり方はないと思う
デバッグ目的ならもっと別なやり方を考えたほうがいいと思う
すごく無理やりなやり方だったら、
for val in (foo, bar):
print filter(lambda x:x[1]==val,locals().items())[0][0]
とかは可能・・(値が同じものがある場合を考慮するともう少しちゃんとする必要がある
56:デフォルトの名無しさん
07/12/05 18:21:52
import * from xxx
みたいに、一気に名前空間にimportすることはできないのでしょうか?
57:デフォルトの名無しさん
07/12/05 18:38:33
from <MODULE> import *
↑でおけ。importした複数のモジュールで同じ名前が使われてた場合、
後にimportしたもので上書きされるから注意。
58:デフォルトの名無しさん
07/12/05 18:44:02
2chのログを保存しているサイト(みみずん、snapshot 2ch等)からログを引っ張ってきて、
dat形式に変換してローカルに保存したいのですが、
自分がうんこ野郎なので、webサイトから何かしらのデータを取得する方法が分かりません。
主にどのようなライブラリを使えば良いのでしょうか?
59:デフォルトの名無しさん
07/12/05 18:53:44
urllibなど
60:デフォルトの名無しさん
07/12/05 18:54:31
>>58
urllib2
URLリンク(www.python.jp)
dat形式への変換はしらん
61:デフォルトの名無しさん
07/12/05 19:30:55
シュザイム : 枕詞ってなに? 12/5 (Wed) 19:13:59
略
玉露入り : 「うはw」という枕詞に「おkwwwww」でしょ? 12/5 (Wed) 19:12:37
略
シュザイム : なにがおk?www 12/5 (Wed) 19:11:23
玉露入り : おkwwwwww 12/5 (Wed) 19:11:01
略
シュザイム : うはw 12/5 (Wed) 19:09:59
パンピーと二人面白いです^o^
62:デフォルトの名無しさん
07/12/05 20:04:58
>>57
ありがとう!
63:58
07/12/05 22:05:12
>>59,60
ありがとう!!
dat変換まで出来てjaneに不具合なく導入出来たら公開する!!
64:デフォルトの名無しさん
07/12/05 22:15:50
いや・・・p2todatがもうあるので・・・
65:デフォルトの名無しさん
07/12/05 22:30:35
>>63
がんばれ
66:58
07/12/05 22:55:32
>>64
あれは使い勝手が悪いので自分で作ってみようかなと
うんこは考えたのです。
67:デフォルトの名無しさん
07/12/06 00:45:04
使い勝手がいいのを作るのはムズかしいぞ、何事も。
特に他人に使ってもらおうと思ったら。
まあ頑張れ。若者よ。もしかしたらすごいのができるかもしれん。
68:デフォルトの名無しさん
07/12/06 00:49:55
わたし待ってるわ
69:デフォルトの名無しさん
07/12/06 09:04:40
いつまでも待ってるわ
70:デフォルトの名無しさん
07/12/06 10:12:58
他の誰かがプログラムを作ってくれる日まで
71:デフォルトの名無しさん
07/12/06 11:43:45
かわいいふりして、うんこわりとやるもんだねと
72:デフォルトの名無しさん
07/12/06 15:00:31
今、Python勉強し始めの超初心者です。
他の言語の知識は全くありません。
大量の写真(.img)を一括で同じサイズにリサイズする
ってな事Pythonで出来ますかね?
PILとか使うのでしょうか?
73:デフォルトの名無しさん
07/12/06 18:07:48
・ファイルサイズを同じにする
・拡大縮小かけずにトリミングだけで同じサイズにカット
・拡大縮小かけるがアルゴリズムは適当で画像が劣化しても問題なし
どれにしますか
74:デフォルトの名無しさん
07/12/06 18:16:06
URLリンク(www.yasuhisa.com)
URLリンク(www.flickr.com)
75:デフォルトの名無しさん
07/12/06 18:46:08
URLリンク(makunouchi.jp)
76:72
07/12/06 19:11:05
>>73
カットは要らないと思います。
画像の劣化ですか…。そうですよね。
画像劣化せずに拡大縮小できたらいいなぁと思います。
大量のファイルをまとめてってのが一番の目的なんで
そこまで考えてませんでした(^^;
>>74 >>75
ありがとうございます
参考になります
77:デフォルトの名無しさん
07/12/06 19:57:08
>>76
そういう用途ではImageMagickが適当かな。
Python用ライブラリもあるけど、単純に外部コマンドでconvertを呼んじゃえばおk。
78:72
07/12/06 21:19:04
>>77
ありがとうございます!
調べてみたんですが、使うの難しそうですね…
79:デフォルトの名無しさん
07/12/06 21:46:21
urllib2でCGIに対してPOSTしようと思ってるんですが、
向こうのCGIがShift_JISしか受け付けないそうです。
普通、ブラウザの文字コードをShift_JISにして
フォームから送ればShift_JISになるのですが、
Pythonで文字コードを指定して送るにはどうすればよいのでしょうか?
下のようにAccept-Charsetを指定したのですがShift_JISでないという
反応が返ってきます。他に何かありますか?
アドバイスお願いします。
params = urllib.urlencode({"key_type":"1".encode(), "key_info":"テスト".encode("Shift_JIS")})
request = urllib2.Request("URLリンク(aaa.jp))
request.add_header("Accept-Charset", "Shift_JIS")
request.add_header("Content-Type", "application/x-www-form-urlencoded")
request.add_data(params)
src = urllib2.urlopen(request).read()
print src
80:デフォルトの名無しさん
07/12/06 22:38:05
u"テスト".encode("Shift_JIS")
81:デフォルトの名無しさん
07/12/06 22:45:23
>>79
ファイルの1行目に
# -*- coding: shift_jis -*-
と書くとうまく行くかも。
82:デフォルトの名無しさん
07/12/06 22:47:08
HTTP RequestとResponseの両方を表すクラスを作るとしたら、どんな名前にするのがいいでしょうか。
分けるべきという話は置いといて。
83:デフォルトの名無しさん
07/12/06 23:00:42
Commandとか・・・
ついでにGoFコマンドパターンにしてしまえ。
84:デフォルトの名無しさん
07/12/07 13:15:04
>>75
>URLリンク(makunouchi.jp)
なにこのデザイン。
1990年代かと思った。
85:デフォルトの名無しさん
07/12/07 13:23:33
質問です。
素数が昇順に出てくる無限リストを使いたかったら自前で実装するしかないですか?
86:デフォルトの名無しさん
07/12/07 14:29:38
p = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, ...]
87:72
07/12/07 14:31:40
また質問なんですが
ImageMagickを入れたほうがよいのでしょうか?
それとも、PythonMagickの方がよいのでしょうか?
88:デフォルトの名無しさん
07/12/07 16:22:58
>>87
やりたい内容による。
ものすごい単純なことやりたいだけなら、
ImageMagickのconvertを使ってshellから呼んだほうが楽。
Pythonから呼ぶことが重要なんであれば、
それ系のmoduleを入れるのが良い。
Pythonからexecするってのもありだけど。
89:デフォルトの名無しさん
07/12/07 18:38:13
linuxでpythonの環境を自分のhomeの下に作ることって可能なんでしょうか?
./configure --prefix=/home/aaa/
だと
/home/bbb
のユーザーは使えないのですよね
90:デフォルトの名無しさん
07/12/07 18:40:37
>>85
def primes():
"""Generates prime numbers.
>>> import itertools
>>> for p in itertools.islice(primes(), 15): print p,
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
"""
yield 2
memo = [2]
i = 1
while True:
i += 2
for d in memo:
if i % d == 0:
break
else:
yield i
memo.append(i)
91:デフォルトの名無しさん
07/12/07 19:24:37
>>89
/home/aaaがbbbから見れるんなら、
必要な環境変数を設定すれば大丈夫でしょう。
PATHやら何やら。
92:デフォルトの名無しさん
07/12/08 14:25:48
>>89
すれ違い、UNIXの勉強してこい
93:デフォルトの名無しさん
07/12/08 17:21:47
Python 3.0a2 リリース
URLリンク(www.python.org)
94:デフォルトの名無しさん
07/12/09 00:37:22
Python2.5.1でsqlite3を使いたいのですがimportでエラーが出てしまいます
標準ではないのでしょうか?
Python 2.5.1 (r251:54863, Dec 1 2007, 21:59:43)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>> from _sqlite3 import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named _sqlite3
>>>
95:デフォルトの名無しさん
07/12/09 00:58:03
sqlite入ってないんじゃね?
[oppai@centos5 ~]$ yum list sqlite
Loading "installonlyn" plugin
Setting up repositories
Reading repository metadata in from local files
Installed Packages
sqlite.i386 3.3.6-2 installed
[oppai@centos5 ~]$ ls /usr/lib/libsqlite*
/usr/lib/libsqlite3.so
/usr/lib/libsqlite3.so.0
/usr/lib/libsqlite3.so.0.8.6
[oppai@centos5 ~]$ ls /usr/include/sqlite*
/usr/include/sqlite3.h
96:デフォルトの名無しさん
07/12/09 08:38:09
ありがとうございます。
コマンドからは sqlite3 で実行出来て
dbも作れているので大丈夫だと思います。
あとPython2.3も入っているのですが、
こっちでは import sqlite しても問題なかったです。
97:デフォルトの名無しさん
07/12/09 08:46:28
$ yum list sqlite
Loading "fastestmirror" plugin
Setting up repositories
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Determining fastest mirrors
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
Installed Packages
sqlite.x86_64 3.3.6-2 installed
$ ls /usr/lib/libsqlite*
ls: /usr/lib/libsqlite*: No such file or directory
$ sudo find / -name '*libsqlite*' -print
/usr/lib64/libsqlite3.so.0
/usr/lib64/libsqlite3.so.0.8.6
/home/mae/work/Python-2.5.1.copied/Doc/lib/libsqlite3.tex
/home/mae/work/Python-2.5.1/Doc/lib/libsqlite3.tex
$ ls /usr/include/sqlite*
ls: /usr/include/sqlite*: No such file or directory
sqlite3.h が無いといけないんですよね orz
98:デフォルトの名無しさん
07/12/09 14:54:16
モジュールにも__init__や__del__のようなものを定義することができるのでしょうか?
99:デフォルトの名無しさん
07/12/09 16:23:53
>>98
つ リファレンスマニュアル
100:98
07/12/09 19:09:38
>>99
URLリンク(www.python.jp)にて
モジュールには、関数定義に加えて実行文を入れることができます。これらの実行文はモジュールを初期化するためのものです
という記述をみつけて__init__相当を実現できることを確認できたのですが__del__が分かりません
もうすこしヒントをいただけませんでしょうか
101:デフォルトの名無しさん
07/12/09 19:52:26
>>100
if __name__ == "__main__":
__credits__, __author__, __copyright__
モージュール内で __**__ 形式で書く時は定数
C言語のconstの代わりにしか使わないような気がする…
__revision__ = "$Revision: 196 $"[11:-2]
こんなのもいま読んでるソースに出て来てたけど
これも定数だったり。面白そうなプロジェクト見つけて
ソース読んだほうが手っ取り早いような…
102:デフォルトの名無しさん
07/12/09 20:08:14
というか無いだろ。
モジュールはオブジェクトじゃなくて
名前空間と考えるべき。
そもそもPythonエンジンは一度も__del__を呼び出さないで
終了してもいいことになっている。
103:デフォルトの名無しさん
07/12/09 20:36:14
import sys
class ExitHandler(object):
def __del__(self):
print 'bye!'
if __name__ != '__main__':
sys.modules[__name__] = ExitHandler()
これで呼ばれないので無理
ところでsys.exitfuncというものがあってだな
104:98
07/12/09 20:51:46
ってゆーか こんなよくありそーな要求にすら こたえられない言語がNASAとかで使われてるってありえないだろ
そりゃスペースシャトルも事故るわwwww 探してみたんだけどrubyでもモジュール用の__del__みたいなのないみたいだしwwww
LLまだまだだなwwwwwwwww
105:デフォルトの名無しさん
07/12/09 21:13:07
_exitfunc = ExitHandler()
これなら呼ばれるわ。当たり前の話だね
106:デフォルトの名無しさん
07/12/09 21:27:52
モジュールすら理解できないのにプログラミングは無理だろ・・・
107:デフォルトの名無しさん
07/12/09 21:35:15
衝撃の新事実発覚!スペースシャトルの事故はPythonのせいだった!
108:デフォルトの名無しさん
07/12/09 21:47:35
モジュールのデストラクタが欲しいというのは初めて聞いた。
プログラム終了時に実行するコードを登録したいということなら、よくあるけど。
そもそもモジュールっていったんimportしたら廃棄できないんじゃないの?
なんでモジュールのデストラクタが必要なのか>>98に説明してほしいな.
109:デフォルトの名無しさん
07/12/09 21:52:37
>>108
なんとなく必要だったんだと思うよ、なんとなく。
110:98
07/12/09 22:25:11
なんかぬりっぽいのであきらめますプゲラッチョ...............
111:デフォルトの名無しさん
07/12/09 23:34:20
ほらな。
112:デフォルトの名無しさん
07/12/10 03:18:45
>>110
「釣りっぽい」の間違いだろ
113:デフォルトの名無しさん
07/12/10 06:25:24
Python を誰かに教えるとしたら、
どういう順番で教えるのがいいかな?
114:デフォルトの名無しさん
07/12/10 06:51:25
チュートリアルの最初の方コピペ
115:デフォルトの名無しさん
07/12/10 09:56:13
>>113
なにはともあれ。
「初めてのPython」と「はじめてのPython」の違いについて教えた方がいい。
116:デフォルトの名無しさん
07/12/10 10:10:42
>>113
全くプログラミング経験が無い相手なら『Pythonで学ぶプログラム作法』一択
プログラミング経験がある相手なら「チュートリアル読め」で以上
117:デフォルトの名無しさん
07/12/10 11:09:59
俺も >116 に一票
118:デフォルトの名無しさん
07/12/10 18:07:53
PIL.image.show()
がxv以外を使うようにできないでしょうか?
119:デフォルトの名無しさん
07/12/10 19:09:57
Python3000a1からa2に上げてみました。
なーんか前、うちの環境でだけでる
utf-8関係でエラーが出たなぁと思っていじってて
また遭遇。
C:\> python
>> help()
help> modules sys
これでエラーが出ちゃった。
前はhelp(なんか)で出てたっぽいけど
今回、help(sys) はちゃんと動いている
XPなんだけど、他にも出る人いる?
120:デフォルトの名無しさん
07/12/10 19:35:03
windowsで2.5と3.0って両立できるの?
怖くて試せない。
121:デフォルトの名無しさん
07/12/10 19:56:22
両立?インストールパス変えるだけでいいんじゃないの?
122:WinXP, 32bit, 2.5.1installed
07/12/10 20:05:39
とりあえず入れてみた。
と、書きたいところだが、
そこに行き着く前にインストーラがこけた。
以上
123:デフォルトの名無しさん
07/12/10 20:12:11
カクタス=サボテン
124:デフォルトの名無しさん
07/12/10 20:47:27
>>123
僕の名前を知ってるかい?
125:デフォルトの名無しさん
07/12/10 21:14:40
MinGW 5.0.2 のインストール
URLリンク(www.rouge.gr.jp)
C:\mercurial-0.9.5>dllwrap --driver-name gcc -dllname executer.dll example.o C:\Python25\libs\libpython25.a
dllwrap: no export definition file provided.
Creating one, but that may not be what you want
カレントディレクトリにexecuter.dllは作成できたけどインポートできないよ
そろそろ心が折れてしまいそうです…もうダメぽ
126:デフォルトの名無しさん
07/12/10 21:31:18
TortoiseHG使えばいいのに。
あとマルチやめろ。
127:デフォルトの名無しさん
07/12/10 22:21:10
>>126
webベースじゃないと嫌です
マルチポストの件は反省しています
もう二度とマルチポストしません…orz
128:デフォルトの名無しさん
07/12/10 22:31:31
>>127
今回は諦めましょう
129:デフォルトの名無しさん
07/12/10 22:44:05
>>128
諦められません!
片っ端から忘れていけばいいじゃない。 VistaにMinGWを入れる場合の参考資料
URLリンク(0xc000013a.blog96.fc2.com)
K-na TechNotes | MinGW のインストール
URLリンク(www.knatech.info)
コンパイル通ってるのにPythonから呼び出せないのは
納得できません…
130:デフォルトの名無しさん
07/12/10 23:50:12
URLリンク(www.python.org)
- On Windows, .DLL is not an accepted file name extension for
extension modules anymore; extensions are only found if they
end in .PYD.
131:デフォルトの名無しさん
07/12/11 00:17:24
関数呼び出す時に
a=hogehoge(x=10,y=20,z=30)
なんつーふうにできるじゃないですか。
この引数一式を変数に入れとくって出来ないんですかね?
par1=("x=10","y=20","z=30")
a=hogehoge( par1 )
じゃもちろん駄目なんですが…
132:デフォルトの名無しさん
07/12/11 00:28:25
kwargs = {'x':10, 'y':20, 'z':30}
a=hogehoge(**kwargs)
133:デフォルトの名無しさん
07/12/11 01:08:46
なんたら代入とか名前あったなぁ
134:デフォルトの名無しさん
07/12/11 08:17:02
Perlでいう
$| = 1(出力バッファリングの停止)をやりたいんですが。
ググると、
起動オプションに-uを付ける、
あるいは環境変数PYTHONUNBUFFEREDに何らかの値を代入する。
という方法があるのは分かったのですが、
なんかやり方が美しくないように思います。
コードの中だけで完結しておきたいんですが、
そういう方法はないでしょうか?
135:デフォルトの名無しさん
07/12/11 08:57:21
pythonプログラム中で環境変数を設定すればいいんじゃないかな
136:デフォルトの名無しさん
07/12/11 09:01:12
バッファサイズを0にして開けばおk
sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0)
137:デフォルトの名無しさん
07/12/11 10:00:48
ありがとう
138:デフォルトの名無しさん
07/12/11 10:15:29
PythonでwxPythonを使いながら色々と勉強しているのですが
wxPythonのDemo等でイベント関連のところでBind関数を使って
いますが、詳細を知ろうと思いwxPythonのドキュメントでこの関数を
探しているのですが見つかりません。
どのあたりに書かれているかご存じの方いらっしゃいませんか?
139:デフォルトの名無しさん
07/12/11 10:30:34
すいません。
自己解決しました。
ドキュメントの最初に
wxWidgets 2.8.4: A portable C++ and Python GUI toolkit
ってあるからてっきりこれがwxPythonのドキュメントかと思ってしまいました。
別の所に、 Package wxのドキュメントがあり、Bind関数の記述を
見つけることが出来ました。
お騒がせしました…
140:デフォルトの名無しさん
07/12/11 11:21:14
Windowsのcmd上で使っています。
ファイルのパスに日本語が含まれているときに限ってなのですが、
sys.argv[0]を表示させようとすると
hoge.py と直接実行したときと
python hoge.py とコマンド指定して実行したときとで動作が違います。
後者はそのままうまく表示されるのですが
前者はunicode(path, 'mbcs')しないと例外が出てしまいます。
どこが違うのでしょう?
141:デフォルトの名無しさん
07/12/11 12:33:08
誰かー。yahoo apiを使うならこれ使えってモジュール知らないか?
142:デフォルトの名無しさん
07/12/11 13:41:45
>>141
URLリンク(developer.yahoo.com)
本家みてもurllib, httplib, xml.*でしこしこ書いてるから
スタンダードなRESTライブラリってないんだと思う。
通信自体は大したことないしAPI毎の解析は結局個別に実装が必要だし
単純にそういうのでいいんじゃないかな。
URLリンク(pysearch.sourceforge.net)
それかこれをJapan対応にするのも有意義かもだけど。
将来的にxmlrpclibみたいにrestlib?が標準でつくといいね。
143:デフォルトの名無しさん
07/12/11 14:19:58
情報ありがとー
144:デフォルトの名無しさん
07/12/11 16:37:03
Linuxでioctl使いたくて↓を読んだんですが、
URLリンク(www.python.jp)
termios関連のものしか引数に渡せないんでしょうか。
URLリンク(home.mag.cx)
にあるLogitechのwebcamのLinux用デバイスドライバーの動作を、
Pythonで呼び出したい、というのが目的です。
linux/videodev.hに定義されているVIDIOCGCAPなどを使って、
URLリンク(www.gelato.unsw.edu.au)
ioctl(fd, VIDIOCGCAP, &vidcap);
// fdはfile descriptor
// vidcapはvideo_capability構造体
のようなCから呼べる動作をPythonで出来ないものでしょうか。
CでモジュールをPython用に書くしかないですかね。
145:デフォルトの名無しさん
07/12/11 17:10:09
>>140
再現しなかったよ。
C:\temp\テスト>pwd
c:/temp/テスト
C:\temp\テスト>type test.py
import sys
print sys.version
print sys.argv[0]
C:\temp\テスト>test.py
2.5 Stackless 3.1b3 060516 (release25-maint, Oct 4 2006, 12:32:12) [MSC v.1310
32 bit (Intel)]
C:\temp\テスト\test.py
146:144
07/12/11 17:16:06
自己解決。
URLリンク(sourceforge.net)
ここを参考にしたら出来そうです。
挫折したらまた来ます。
147:デフォルトの名無しさん
07/12/11 18:46:45
>>140
複数の python が入ってるんじゃね?
148:デフォルトの名無しさん
07/12/11 18:59:07
3p
149:デフォルトの名無しさん
07/12/11 23:08:15
行頭で
#-*- coding: shift_jis -*-
というように記載しているcodingの指定って変数とかに
格納されていたりするのでしょうか?
二箇所もかいたりするのを省略したいのですが。
150:デフォルトの名無しさん
07/12/11 23:53:49
行頭の一ヶ所に書いておけばいい
151:デフォルトの名無しさん
07/12/12 00:33:29
そうじゃなくて、行頭で書いたコードをプログラム中でも使いたいってことじゃね?
変数に入ってるかどうかしらんけど、なんかの関数で取得することはできそうだな。
152:デフォルトの名無しさん
07/12/12 01:07:24
以下のコードを使って独自の import を定義しようとしたんだけど:
import my_api # C によって実装した独自import関数を含むモジュール
def set_import():
__builtins__.__import__ = my_api.my_import
実行すると __builtins__ に __import__ メンバが存在しないっておこられるんだけど
dir(__builtins__) してみたら、確かに __import__ だけが存在しない。
このコード、
Py_InitModule("my_api", APIの宣言テーブル)
PyObject* mo = Py_CompileStringFlags(上記コード, "hoge", Py_file_input, NULL);
PyObject* ret = PyObject_CallFunction(mo, "set_import", "()");
Py_DECREF(ret);
Py_DECREF(mo);
て感じで実行させてるんだけど、このやり方だと __builtins__.__import__ が定義されなかったりするのかな?
153:デフォルトの名無しさん
07/12/12 01:13:27
出来たとしてもキモイものが出来そうだ。
・ASCII
・Shift_JIS
・euc-jp
・utf-8
・スウェーデンなキャラコード(よーわからんw)
5つあったとして、importした時とかは、
どういう動作を期待してるんだろ?
Shift_JISモジュールがShift_JISを吐き出して、
euc-jpモジュールがeuc-jpを吐き出すのか?
Shift_JISモジュールをimportしたeuc-jpモジュールは、
何を吐き出すんだ?両方混ざるのか?
俺は
ソースが何語で書かれているか
何語を入力・処理・出力するのか
この2つは、別のものだと考えているけどね。
154:デフォルトの名無しさん
07/12/12 06:39:40
simplejsonのコンパイルって簡単にできないですか?win
155:デフォルトの名無しさん
07/12/12 08:22:34
>>145
追試ありがとうございます。
確かにそのコードだと問題出ませんでした。
自分のところで書いてたコードを晒します。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
a = unicode(sys.argv[0], 'mbcs')
b = os.path.abspath(os.path.dirname(a))
print a
print b
print u'%s/ほげ' % (a)
try:
print u'%s/ふが' % (b.decode('mbcs')) # testpath.py のときだけエラー
except UnicodeEncodeError, (e):
print sys.exc_info()[0]
print e
print e.args
try:
print u'%s/ふが' % (b) # python testpath.py のときだけエラー
except UnicodeDecodeError, (e):
print sys.exc_info()[0]
print e
print e.args
156:デフォルトの名無しさん
07/12/12 08:23:08
C:\日本語>testpath.py
C:\日本語\testpath.py
C:\日本語
C:\日本語\testpath.py/ほげ
<type 'exceptions.UnicodeEncodeError'>
'ascii' codec can't encode characters in position 3-5: ordinal not in range(128)
('ascii', u'C:\\\u65e5\u672c\u8a9e', 3, 6, 'ordinal not in range(128)')
C:\日本語/ふが
C:\日本語>python testpath.py
testpath.py
C:\日本語
testpath.py/ほげ
C:\日本語/ふが
<type 'exceptions.UnicodeDecodeError'>
'ascii' codec can't decode byte 0x93 in position 3: ordinal not in range(128)
('ascii', 'C:\\\x93\xfa\x96{\x8c\xea', 3, 4, 'ordinal not in range(128)')
157:デフォルトの名無しさん
07/12/12 08:24:21
>>147
pythonは1つだけ(2.5.1)です
158:デフォルトの名無しさん
07/12/12 08:34:52
Python3000で組み込み関数から file が削除されてるのはなぜ????????
159:デフォルトの名無しさん
07/12/12 08:38:51
open()使いなさいよってことかと
160:デフォルトの名無しさん
07/12/12 08:38:57
testpath.pyのみのときは元々実行ファイルのパスが判明しているが
(エクスプローラでダブルクリックするとさらに状況が違うかも知れない)
python testpath.pyのときは、実行ファイルがカレントディレクトリにいるため
プログラム中の
os.path.abspath
または
os.path.dirname
の内部でパスが補完されている
おそらく
C:\>python C:\日本語\testpath.py
を実行すれば前者(testpath.pyのみ)と同じ結果になるだろう
os.path.abspath
または
os.path.dirname
のUNICODEの取り扱いに問題があると思われ
161:デフォルトの名無しさん
07/12/12 08:47:28
>>159
file は2.2か2.3で新しく追加された関数(というかコンストラクタ)で、
むしろ open の方が古い仕様で file のエイリアスって
扱いじゃなかったっけ。。。。。。
162:デフォルトの名無しさん
07/12/12 09:05:31
整理)
b = os.path.abspath(os.path.dirname(unicode(sys.argv[0], 'mbcs')))
の状況で(この段階↑で既に変なことしてるように見えるが)
1) print u'%s/ふが' % (b.decode('mbcs')) # testpath.py のときだけエラー
2) print u'%s/ふが' % (b) # python testpath.py のときだけエラー
1)になるパターン
・C:\日本語>testpath.py
・エクスプローラからダブルクリック
・C:\>python 日本語\testpath.py
・C:\日本語>python ..\日本語\testpath.py
・C:\日本語>python C:\日本語\testpath.py
2)になるパターン
・C:\日本語>python testpath.py
のみ?
結論)
とりあえず
a = sys.argv[0]
b = unicode(os.path.abspath(os.path.dirname(a)), 'mbcs')
print u'%s/ふが' % (b)
という書き方なら(1)(2)共に問題ありませんでした
本当にありがとうございました
163:デフォルトの名無しさん
07/12/12 09:55:33
WindowsXP+Python3.0a2でIDLE起動したんだが
プルダウンメニューとコンテキストメニューが派手にバグっててorz
一瞬何が起こったのか分からんかった
164:デフォルトの名無しさん
07/12/12 10:11:11
こんな流れか?
(1). iterator導入。
(2). 新規にfile()作ったぜ。みんなコレ使え。
(3). iterator浸透。generator導入。
(4). なんだかもう、open()はfile()のエイリアスでいい気が……
(5). マニュアル『open()はfile()のエイリアス。過去互換です。』..._〆(゚▽゚*)
(6). file()いらねーだろ。統一感ないし。"みんな"使ってないし。←いまここ
(7). じゃあfile()は廃止ね。(5)をまじめに実行した奴m9(^Д^)プギャー
165:デフォルトの名無しさん
07/12/12 10:20:01
変数名に file 使いたいから file() 使いにくいんだよね……
def f():
file = file("/dev/null") # ここで UnboundLocalError が飛ぶ
166:デフォルトの名無しさん
07/12/12 11:17:45
>>160
>>162
解決しました。
ありがとうございました。
167:デフォルトの名無しさん
07/12/12 14:20:08
なんだよマニュアルに open() は過去互換とかいうから
file() 使っていたのにヽ(`Д´)ノ
168:デフォルトの名無しさん
07/12/12 14:47:54
import urllib
conn = urllib.urlopen("test.txt")
data = conn.read()
conn.close()
みたいなかんじでIO関連の処理はopen+closeでやる
ものだと何となく認識してた俺は大丈夫だったようだ…
169:デフォルトの名無しさん
07/12/12 15:46:30
Python 2.4:
以前の関数名である open() は互換性のために残されており、 file() の別名となっています。
Python 2.5:
When opening a file, it's preferable to use open() instead of invoking this constructor directly.
ファイルを開くときは、このコンストラクタ(file)を直接実行するより、open()を使う方が望ましい。
170:デフォルトの名無しさん
07/12/12 17:25:58
>167
オレモオレモ… orz
171:デフォルトの名無しさん
07/12/12 17:33:15
Python 2.3でこの関数を呼ぶと、
def _IOC(dir, type, nr, size):
return ( dir << _IOC_DIRSHIFT) | ¥
(ord(type) << _IOC_TYPESHIFT) | ¥
( nr << _IOC_NRSHIFT) | ¥
( size << _IOC_SIZESHIFT)
/usr/lib/python2.3/site-packages/video4linux/__init__.py:112: FutureWarning: x<<y losing bits or changing sign will return a long in Python 2.4 and up
return ( dir << _IOC_DIRSHIFT)
って、出るんですけど、
何を修正すればこのwarningは消えますか?
172:デフォルトの名無しさん
07/12/12 17:40:54
URLリンク(docs.python.org)
URLリンク(www.python.jp)
173:デフォルトの名無しさん
07/12/12 18:11:07
>>172
単にwarningが表示されないようにするのではなく、
warningの原因自体を取り除きたいです。
>>171の書き方のどこがまずいんでしょうか。
174:デフォルトの名無しさん
07/12/12 18:16:18
def func(a, b):
pass
という関数があったとして、
func(1, 2)
と書くかわりに
tup = (1, 2)
func(tup)
みたいにしたいんですが、
どうやったらいいでしょうか。
func自体は修正できないものとします。
175:デフォルトの名無しさん
07/12/12 18:18:34
tup = (1, 2)
func(*tup)
176:デフォルトの名無しさん
07/12/12 18:24:41
>>175
ありがとうございました。
177:デフォルトの名無しさん
07/12/12 20:44:17
>>175
これ便利だよね関数にタプル渡して処理してくの
def getSafeText(self, text):
htmlFixes = [ ("&", "&"), ("<", "<"), (">", ">"), ]
for fix in htmlFixes:
text = text.replace(*fix)
return text
178:デフォルトの名無しさん
07/12/12 20:52:00
なんかと思ったら&、>、<への変換か
179:デフォルトの名無しさん
07/12/12 21:09:58
&amp;と書かないと意味不明
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/217 KB
担当:undef