[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/25 07:49 / Filesize : 245 KB / Number-of Response : 1024
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その28



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/11/15(日) 15:26:08.75 ID:r8bNQIop.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その27
peace.2ch.net/test/read.cgi/tech/1441317912/

関連スレ
Pythonのお勉強 Part51
peace.2ch.net/test/read.cgi/tech/1443700103/

◆関連リンク Python の Home Page
ttp://www.python.org/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

◆まとめwiki
ttp://python.rdy.jp/

385 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 00:54:02.01 ID:uB2nj2I/.net]
Rubyには、Ruby内部の処理系の本がある。
Rubyのしくみ、2014

黒魔術の書もある。
メタプログラミングRuby 第2版、2015

386 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:15:25.19 ID:eOjwGRQr.net]
関数内でif文を使う場合は必ず関数の最下部で使用しなければならないのですか?
CやJavaと勝手が違い困惑してます

387 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:16:18.12 ID:eOjwGRQr.net]
if文を閉じようとすると関数まで閉じてしまうんです

388 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:17:52.41 ID:fiBTvI7H.net]
人に訪ねる前にリファレンスでも読んでくれるかな

389 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:44:55.14 ID:eOjwGRQr.net]
インデントいじったら解決しました
クソレスすいません

390 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:13:13.12 ID:I7CTg4GL.net]
1if 1functionが見とうしの良いプログラミングをする基本ですが、それをわかっていますか?関数型プログラミングの基本です

391 名前:デフォルトの名無しさん [2015/12/23(水) 13:54:59.03 ID:hk+YOZip.net]
>>380 初心者スレじゃなくここは超超初心者スレ。その位は目をつぶって。

392 名前:デフォルトの名無しさん [2015/12/23(水) 15:27:03.35 ID:xL9nIhBd.net]
質問なのですが、コマンドプロンプトでPython setup.py installという入力をしてインストールしたいのですがどうすればインストールされるのでしょうか?
どなたかおねがいいたします

393 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:58:57.59 ID:fiBTvI7H.net]
そのコマンドを実行した時に出たエラーを貼れよ



394 名前:デフォルトの名無しさん [2015/12/23(水) 16:18:35.94 ID:xL9nIhBd.net]
もうしわけありません、SSです
iup.2ch-library.com/i/i1567523-1450855082.jpg

395 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:22:16.90 ID:I7CTg4GL.net]
あーあ、個人情報晒しちゃったね

396 名前:デフォルトの名無しさん [2015/12/23(水) 16:31:12.96 ID:xL9nIhBd.net]
痛々しい人がいる様なので質問は無視して下さって大丈夫です。汚し失礼いたしました。

397 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:37:26.03 ID:I7CTg4GL.net]
┐(´〜`)┌ ヤレヤレ

398 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:40:22.02 ID:fiBTvI7H.net]
今回の俺は悪くねえよ?
仮に注意を怠ったことが悪いにしても380ほどじゃない

399 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:01:33.29 ID:I7CTg4GL.net]
犯罪教唆やろなぁ
通報でち〜ん(笑)

400 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:35:50.77 ID:BTq4dLlY.net]
こんな素人でもPythonに手を伸ばす時代なのか
もうなんて言うかさ・・・初心者向けサイトのはじめのぶぶんだけでも見てこいよと

401 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:48:24.59 ID:BTq4dLlY.net]
spell-of-love.blogspot.jp/2015/12/mhx.html
これがヒットした
MHXってなんだろうと思ったらゲームじゃないか
ああつまりチートがやりたかったのか
Pythonを学習するわけじゃなくてツールの使い方を効くみたいな感じで来たんだろうな

402 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:53:43.25 ID:W6FeRC/T.net]
ただのチート屑野郎か

403 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 19:06:41.72 ID:I7CTg4GL.net]
自ら個人情報晒してるし、このスレに潜むS級パイソニストにハッキングされるのも秒読み
ID:xL9nIhBdヴォーイは今頃ガクブルやろなぁ



404 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 20:57:40.98 ID:ou428rrW.net]
お前らにだって素人だった時代があったろう

405 名前:デフォルトの名無しさん [2015/12/23(水) 21:02:54.51 ID:2qdT6/2p.net]
単なる人風情がドラゴンに何を教えられるというん

406 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 21:12:22.17 ID:fiBTvI7H.net]
ドラゴンが必死にキーボードをタイプしてると考えると凄い微笑ましい

407 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 21:48:09.72 ID:+QpvspZr.net]
リストの内包表記ってどのくらいまでならネストさせていいの?
おれは2,3回ネストしたらこれ以上は見にくくなるかなとおもってやめるんだけど

408 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:08:55.12 ID:fiBTvI7H.net]
原則1段、自分しか読まないコードで妥協して2段
3段以上にはしない

理由
自分のはまだいいが、他人が書いた2段以上のリスト内包表記は読みたくない

409 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:00:52.86 ID:65Ta51SK.net]
Hi gays

ちょっと聞きたいんだがPythonで
ans = a * (d-b if d>b else 0)
ってどういう意味なんだい?
cライクな言語で書いたら
if( d>b ){
ans = a * d-b;
}else{
ans = 0;
}
と等価なのかい?

410 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:10:33.84 ID:sybmR7b7.net]
YES

411 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:25:30.3 ]
[ここ壊れてます]

412 名前:6 ID:65Ta51SK.net mailto: >>402
Thank you.
見かけたソースでこの書き方してて気になってたんだが
これで安心して眠れます!
[]
[ここ壊れてます]

413 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:39:11.77 ID:ChEfLd6V.net]
>>401
等価じゃねえだろ
a * (d-b)



414 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:41:17.92 ID:ChEfLd6V.net]
ans = 0じゃねえよ
0 * aが必ず0になると思うなよ

415 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:46:01.63 ID:T6taUc7t.net]
例を挙げてやればいいのに
そんなんだからモテないんだゾ

inf * 0

416 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:41:09.54 ID:GBgVflx7.net]
'string' * 0 = ''
[1] * 0 = []
とか、いろいろあるよね。

417 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 01:56:37.90 ID:hK6V4eA3.net]
うるせえ
蛇を、俺様の蛇を突っ込むぞ

418 名前:デフォルトの名無しさん [2015/12/25(金) 07:24:59.16 ID:0xTFVyZ6.net]
>>406 もてるもてないは,pythonに関係ない。

419 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 10:34:18.87 ID:t6l+Y83l.net]
C言語やってるのに掛け算と代入は等価だと思ってる奴に驚きだよ

420 名前:デフォルトの名無しさん [2015/12/25(金) 12:27:02.37 ID:BRCD1tgm.net]
属性値が初期化されない

class Box:

numlist = {}

def numbox(self,num):
x=0
list = []
while x < 5:
list.append(num)
x +=1
self.numlist[num] = list

for i in range(0,3):
box = Box()
box.numbox(i)
print box.numlist

結果が
{0: [0, 0, 0, 0, 0]}
{0: [0, 0, 0, 0, 0], 1: [1, 1, 1, 1, 1]}
{0: [0, 0, 0, 0, 0], 1: [1, 1, 1, 1, 1], 2: [2, 2, 2, 2, 2]}
こうなってしまいます。

本当はこうしたいのです。
{0: [0, 0, 0, 0, 0]}
{1: [1, 1, 1, 1, 1]}
{2: [2, 2, 2, 2, 2]}

なぜこうなるのか理由も教えて貰えると助かります。
併せてこの部分の理解に役立つ書籍等もあれば教えて下さい。宜しくお願いします。

421 名前:デフォルトの名無しさん [2015/12/25(金) 12:28:23.26 ID:ISLz7uba.net]
>>401
cライクな言語で書いたら
ans = a * (d>b ? d-b : 0);
と等価

422 名前:デフォルトの名無しさん [2015/12/25(金) 12:30:35.74 ID:ISLz7uba.net]
>>411

class Box:
numlist = {}


class Box:
numlist = {}
def __init__():
self.numlist = {}

または
class Box:
def __init__():
self.numlist = {}

423 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 12:31:37.82 ID:t6l+Y83l.net]
>>411
インデントをしっかり書けよ
for i in range(1):
__print i



424 名前:デフォルトの名無しさん [2015/12/25(金) 12:39:42.43 ID:BRCD1tgm.net]
>>413
ありがとうございました。
>>411
申し訳ありません。

425 名前:デフォルトの名無しさん [2015/12/25(金) 12:51:42.15 ID:ISLz7uba.net]
>>414
専ブラで見ればインデントはあるよ

426 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:49:15.55 ID:Se/DKosC.net]
a = [[0] * 2] * 2
a[0][0] = 1
a[1][1] = 1
print(a)

結果
[[1, 1], [1, 1]]
となる

なぜ
[[1, 0], [0, 1]]
にならないんですか?

ちなみに a = [[0, 0], [0, 0]]って言う風にリストを作れば求める結果がでますけど
動的にリストを作りたいのでハードコーディングは避けたいです

427 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:58:49.32 ID:ISLz7uba.net]
>>417
deepcopy

428 名前:デフォルトの名無しさん [2015/12/25(金) 16:28:30.83 ID:2P4BAtg3.net]
>>417

# a = [[0] * 2] * 2
# は、
# x = [0] * 2
# a = x * 2
# と等価なので、以下の結果に。
# >>> id(x[0]), id(x[1])
# (137396016, 137396016)
# 動的に作りたいということなら、以下の方法でどうぞ。

def generate_matrix(n):
  L = [None] * n
  for i in range(n):
    L[i] = [0] * n
  return L

if __name__ == "__main__":
  L = generate_matrix(2)
  print(L)
  L[0][0] = 1
  L[1][1] = 1
  print(L)
  print(id(L[0]), id(L[1]))

429 名前:デフォルトの名無しさん [2015/12/25(金) 16:41:02.55 ID:W5Oj5ZeL.net]
>>417
>>> a = [[0] * 2] * 2
>>> print(a[0] is a[1])
True

>>> a = [[0] * 2 for x in range(2)]
>>> print(a[0] is a[1])
False

430 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 16:49:12.73 ID:ISLz7uba.net]
>>> b = [0] * 2
>>> a = [b, b]
>>> a[0][0] = 1
>>> a[1][1] = 1
>>> a
[[1, 1], [1, 1]]

>>> b = [0] * 2
>>> a = [b[:], b[:]]
>>> a[0][0] = 1
>>> a[1][1] = 1
>>> a
[[1, 0], [0, 1]]

>>> b = [0] * 2
>>> a = [b[:]] * 2
>>> a[0][0] = 1
>>> a[1][1] = 1
>>> a
[[1, 1], [1, 1]]

431 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 16:50:13.85 ID:ISLz7uba.net]
>>419
そこまでするならnumpy薦めるかなー

432 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 17:00:18.31 ID:RvrA8VgX.net]
>>417
リストを*で作ると中身のオブジェクトは浅いコピーされる
つまりmutableなオブジェクトはオリジナルと同一になる

この操作が望ましくないなら、要素ごとに新しいオブジェクトを作るコードを書く

例えば内包表記だど下の書き方
(数値はimmutableだから*で作っても要素ごとに新しいオブジェクトになる)
a = [[0]*2 for _ in range(2)]

433 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 18:03:38.78 ID:TOcVIACN.net]
>>423
[]の中の[0]*2の部分は浅いコピーにはならないの?
[[0 for i in range(2)] for _ in range(2)]って書かなくてもいいの?



434 名前:デフォルトの名無しさん [2015/12/25(金) 19:28:44.72 ID:W5Oj5ZeL.net]
>>424
> >>423
> []の中の[0]*2の部分は浅いコピーにはならないの?
なるよ

> [[0 for i in range(2)] for _ in range(2)]って書かなくてもいいの?
書かなくてもいいよ

435 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 20:41:51.97 ID:RvrA8VgX.net]
>>424
ごめん、>>423の最後のカッコの中は間違ってる
正しくは、数値はimmutable(不変、書き換え不可)なオブジェクトだから浅いコピーでも問題にならない

436 名前:デフォルトの名無しさん [2015/12/26(土) 10:14:43.83 ID:PvF8tuZ2.net]
None は immutable

437 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 14:56:39.32 ID:cWc+VXDO.net]
FONT = (

438 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 14:58:34.11 ID:cWc+VXDO.net]
FONT = ('--X--XXX-XXX-X-X-XXX--XX-XXX-XXX--XX-XX--'
'-XX----X---X-X-X-X---X-----X-X-X-X-X-X-X-'
'--X---XX--X--XXX-XX--XXX--X--XXX-XXX-X-X-'
'--X--X-----X---X---X-X-X-X---X-X---X-X-X-'
'--X--XXX-XXX---X-XX---XX-X---XXX-XX---XX-')
これの-を0に、Xを1に変えたいんだけど

例えば、ne=[1 if w=='X' else 0 for w in FONT]だと、
[0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1,....0, 0, 1, 1, 0]
、と続いてしまい、FONTの形式にならない

FONTの形式のまま上記の変換を行うにはどのように書けばいい?

439 名前:デフォルトの名無しさん [2015/12/26(土) 15:06:32.77 ID:PvF8tuZ2.net]
ne=''.join('1' if w=='X' else '0' for w in FONT)
試してないけど

440 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:12:57.50 ID:jqu4cTVa.net]
普通にreplaceした方があなたのコードを読まされる人(数週間後の自分を含む)は読みやすいですよ

441 名前:デフォルトの名無しさん [2015/12/26(土) 16:11:04.27 ID:Fvb/ns2y.net]
>>429
replace_chars = str.maketrans({'-': '0', 'X': '1'})
FONT = FONT.translate(replace_chars)

あと一個だけ聞きたいんですけどFONTってタプルじゃなくて文字列であってますか?
もしタプルのつもりだったなら、後でちょっと話があるから

442 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 16:15:14.55 ID:h8/CI80S.net]
> 後でちょっと話があるから

((((;゚Д゚))))ガクガクブルブル

443 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 16:18:38.65 ID:jqu4cTVa.net]
ワロタ



444 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 17:55:44.63 ID:xxF79lwk.net]
429 はこの後、どうなってしまうん?

445 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 18:14:09.87 ID:PvF8tuZ2.net]
Pythonなら書き方は一つ(キリっ)

446 名前:デフォルトの名無しさん [2015/12/26(土) 18:53:47.72 ID:4eoE585C.net]
>>432
ニキ、文字列であってるで。
>>429の行末には,がないでな。

447 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:59:01.18 ID:h8/CI80S.net]
>>436
> Pythonなら書き方は一つ(キリっ)
そんなわけねーよなw

ループの書き方でも複数あるし、インデントでブロックを
表現すると言っても改行の位置はいろいろ変えられる。

経験浅い人のコードを修正したけど、他の言語と同じように
ムダな処理はたくさんあったし、同じことしていても半分以下にコードを減らせた。

公式、準公式ライブラリが、充実しているから、誰でも同じライブラリを
使ってる(だろう)とは思ったけど、それぐらいだよ。

448 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 00:43:53.07 ID:CYJU6fsZ.net]
>>432
こえーよw

449 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 13:45:35.63 ID:J6cqDaFb.net]
PythonとRubyどっちを極めようか迷ってて国内ではやっぱりRubyかなぁ、なんて

450 名前:思ってたら昨今のPythonさんの躍進ぶりが目覚まし過ぎてもうね
機械学習やらAIやらサイバーセキュリティ方面とかPythonさん大活躍だし俺セキュリティ方面進もうかと思ってたからPythonさん選択しますわ(´・ω・`)
[]
[ここ壊れてます]

451 名前:デフォルトの名無しさん [2015/12/27(日) 13:56:01.33 ID:1Mfa94Jm.net]
言語に対しての書籍ならRubyの方がいいのあるっぽいけど
応用だとPythonの方が多いイメージ

452 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 14:01:18.08 ID:73m0m6s/.net]
バカが機械学習に手を出してもコピペ程度しか出来なくて応用できない

453 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 14:20:03.09 ID:NH+KDjDi.net]
>>440の文章から感じるキモさって何なんだろう
間違いは言っていないはずなのに、生理的嫌悪感を覚える



454 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 14:23:05.59 ID:cy1YT38J.net]
なんでPython選択したんだろうな
numpy、scipy、matplot、pandas があったからかな

455 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 14:36:45.80 ID:NH+KDjDi.net]
他のp言語やrubyと比べて読みやすい以上の理由はなかった
それで十分すぎる

456 名前:デフォルトの名無しさん [2015/12/27(日) 14:37:50.68 ID:1Mfa94Jm.net]
TIOBEでランクが高かったからなんて言えない・・・

457 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 14:42:11.60 ID:cy1YT38J.net]
ココ数年、システム的なものにも
Pythonソースが食い込んでるの多いから
読まざるをえないというのもある

458 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 16:28:13.93 ID:wq2CCL/x.net]
>>411
list.append() を使ったら、リストに追加されていく

>>417
Ruby, Python, PowerShellなどでは、
浅い (shallow) コピー・深い (deep) コピーに気をつける

配列などコンテナのコピーは、参照のコピー(浅いコピー)となり、
同一オブジェクトを指すため、要素の変更時に注意する。
Object ID で、同一オブジェクトかどうかを確かめる

459 名前:デフォルトの名無しさん [2015/12/27(日) 23:35:11.37 ID:ZMHZ9AEQ.net]
>>438
解決する課題に対してpythonにとって最適な書き方が一つあったとして、それを自然に目指せるように言語設計されているという印象

460 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:58:49.02 ID:Z/fQoFlX.net]
アンスコタイプしづらいからキャメルを標準にしてほしい
あと動的型付けのくせに数値の文字列連結にtostr処理が必要とかギャグとしか思えない
何が言語設計だ笑わせるな

461 名前:デフォルトの名無しさん [2015/12/28(月) 07:52:14.52 ID:ShwEi03W.net]
な、こういうのを排除出来るのも良い点

462 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:56:03.35 ID:JJlxJ852.net]
ゴミが真っ先に消えるのは最高だね

463 名前:デフォルトの名無しさん [2015/12/28(月) 12:12:53.65 ID:Y4DeX8w+.net]
>>441
PythonはWindowsにもやさしいですからね

>>445
長年perlつかっててもう飽き飽きうんざりしてた頃にPythonなにこれいいじゃん



464 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:24:42.36 ID:X/WzADm6.net]
>>450
Pythonには、ダブルクォーテーションで囲んで式展開する、
groovyのGStringみたいなのは無いの?
"$変数名・${式}"

def a = 'abc'
"${a*2}" // abcabc

465 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:33:02.59 ID:JJlxJ852.net]
ないぜ(・∀・)ニヤニヤ
欲しけりゃママのおっぱいでも吸ってな

466 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:42:55.40 ID:zB17Wept.net]
チュートリアル読めばpythonでのやり方が書いてある
そのくらい読めよカス

467 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 17:19:12.42 ID:omdbAtLE.net]
久々Pythonして、import feedparserをしたら「ImportError: No module named feedparser」が出た
入ってるはずなのにおかしいと思ってrootになって同じようにimportしたら普通に読み込めた

パーミッションは、
$ ll /usr/lib/python2.6/
drwxr-xr-x. 41 root root 4096 12月 28 16:49 2015 site-packages

$ ll /usr/lib/python2.6/site-packages/ | grep feedparser
drwx--x--x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg

755に変えてもダメなんだけど、どうすればいいんかな?

それと、皆はこのsite-packagesなどのパーミッションはどうしてる?

468 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 18:11:47.45 ID:JJlxJ852.net]
read権限で十分だと思うが、実際にどこを探すかはimportした瞬間のsys.path次第

469 名前:デフォルトの名無しさん [2015/12/28(月) 18:27:38.14 ID:Y4DeX8w+.net]
さすがに 711 はだめなんじゃね

470 名前:デフォルトの名無しさん [2015/12/28(月) 18:55:14.16 ID:Bcq1wNMf.net]
feedparserってこれのこと?
https://pypi.python.org/pypi/feedparser/5.2.1

471 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 20:48:05.95 ID:omdbAtLE.net]
>>458
>>> sys.path
['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2',
'/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload',
'/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0',
'/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']

一応、/usr/lib/python2.6/site-packagesは読み込んでるはずなんだけど
/usr/lib64/python2.6/site-packagesの中にはfeedparserは存在しない


>>459
$ ls /usr/lib/python2.6/site-packages/ | grep feedparser
drwxr-xr-x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg

$ ls /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/
drwx--x--x. 2 root root 4096 12月 28 16:49 2015 EGG-INFO
-rwxr-xr-x. 1 root root 160056 12月 28 16:49 2015 feedparser.py
-rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc

755でもダメなんだよね
egg内は上記の通りだけど


>>460
そうだと思う
俺もいつ入れたか覚えてないんだけど、他の外部モジュールでなんか使ってるようで

472 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:33:13.86 ID:DWhsauMG.net]
>>461
> -rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc

755 になってないじゃん…

473 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:37:16.93 ID:omdbAtLE.net]
>>462
いやぁ、それ755にしてみたけどダメだった...



474 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:39:02.55 ID:JJlxJ852.net]
あー、pycのパーミッションか

475 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 22:18:24.30 ID:omdbAtLE.net]
仕方がないので
sys.path.append('/usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg')
としたらimport通った
でもsys.path.append()とかしたくないんだよね
こういう場合はどこが悪いん?
改善方法教えてもらえたらありがたいんだけど

476 名前:デフォルトの名無しさん [2015/12/29(火) 07:57:18.81 ID:uJ7begDl.net]
まず、
$ which -a python2.7
で、どこのpython2.7を使っているか確認。
$ python2.7 -c 'import sys;print(sys.path)'
$ ls /usr/local/lib/python2.7/dist-packages
$ cat /usr/local/lib/python2.7/dist-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./a.egg
./b.egg
/usr/lib/python2.7/dist-packages

まで調べて、.eggを自動的にimportするようになってるのか。
と思いましたが、一つ一つ自分で調べてみては?

問題がなく、意図したpathのpython2.7を使っているのなら、
~/.pythonstartup
に、
sys.path.append('/usr/lib/python2.7/site-packages/feedparser-5.2.1-py2.6.egg')
を書き加える。

477 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 09:27:21.39 ID:3yCw/m4m.net]
>>466
ありがと

まず環境として、centOS6のデフォルトのPython使ってる
で、feedparser他ライブラリは基本pip installから行なってる

で、
$ sudo cat /usr/lib/python2.6//site-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./pip-1.5.6-py2.6.egg
./pydelicious-0.6-py2.6.egg
./feedparser-5.2.1-py2.6.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

easy-install.pthはrootじゃないと権限なく読めなかったけれど、feedparserは書かれているので読みこむようになってるのかなと
上記の内容良く分かんないけれど

478 名前:デフォルトの名無しさん [2015/12/29(火) 09:43:57.99 ID:uJ7begDl.net]
sudoしたくないんでしょ?
だったら、
$ cat /usr/lib/python2.6/site-packages/easy-install.pth
じゃないと。↑できないんだから、permissionの問題を
解決する必要があるね。
cat 出来るようになれば解決する問題のようだけどなぁ。

あと、↓を実行できるかも確かめたら?
$ cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg
↑できるんであれば、python2.6からimportできないのは別の問題になるけども。

479 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:04:37.52 ID:tu4wvDsf.net]
pythonの問題じゃないな
初歩的な問題
ここで答えてもいいがlinuxのくだ質で聞いてこい

480 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:13:37.98 ID:3yCw/m4m.net]
>>468
でも同じようにpip installしたMySQLdbなんかは普通にimport出来るんだよね
cat /usr/lib/python2.6/site-packages/easy-install.pthはパーミッションのせいで読めないままで

cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/feedparser.pyはrootじゃなくても読み込める


>>469
元々はsudo pip installした場合の皆の設定のやり方を知りたくて
今はlinuxのパーミッションの話になってきてしまったけれど...
ま、linux板に聞きに行ってくる

481 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:16:15.16 ID:S7hPg+te.net]
なんか可哀想な奴がいるな。
2つの意味でw

482 名前:デフォルトの名無しさん [2015/12/29(火) 12:56:28.91 ID:X5GhveT8.net]
>>454
テンプレート文字列、名前付きテンプレート文字列、formatメソッドを使う

483 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 15:20:27.64 ID:qoFlpoo3.net]
windows7 64bit python2.7です
make.bcde.jp/category/33/のサンプルプログラムをテキストエディタでコピペして実行したのですがImportError: No module named htmlとエラーが出てしまいます
どうすればいいでしょうか?



484 名前:デフォルトの名無しさん [2015/12/29(火) 15:24:41.93 ID:f6XlG/an.net]
とりあえずモジュールを入れてみようか

485 名前:デフォルトの名無しさん [2015/12/29(火) 15:43:10.61 ID:O/+FVQhq.net]
>>465
頭が悪い

自分勝手な思い込みを排除しろ

>>467
/usr/lib64/python2.6/






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef