[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 08/16 12:00 / Filesize : 18 KB / Number-of Response : 62
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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

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

前スレ
くだすれPython(超初心者用) その17
toro.2ch.net/test/read.cgi/tech/1365323116/
関連スレ
Pythonのお勉強 Part48
toro.2ch.net/test/read.cgi/tech/1358750040/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/

6 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 12:58:57.86 ]
pythonが分からず、お力を貸して頂きたく思っています。
スレチじゃないことを祈りつつ、よろしくお願い致します。


OS:Windows8
Python:ver 2.6.1
Javaフレームワーク(play1.2.5)提供のスクリプト(python)をコマンドラインから叩くとエラー。
windows7の旧マシンでは問題はなかった。
pythonはplay同梱のもの。
新しくPython2.7系をインストールして、そちらからも実行してみたがエラーとなった。

7 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 13:05:24.68 ]
エラー貼る気はありません。

8 名前:6 mailto:sage [2013/08/07(水) 13:07:59.26 ]
ここにログを書くのは不適当な気がしてきましたが、すがる思いで...。
連投申し訳ありません。。

File "PythonHOME\lib\subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "PythonHOME\lib\subprocess.py", line 595, in __init__
errread, errwrite)
File "PythonHOME\lib\subprocess.py", line 821, in _execute_child
startupinfo)
WindowsError: [Error 2] 指定されたファイルが見つかりません。

9 名前:デフォルトの名無しさん [2013/08/07(水) 13:12:50.89 ]
ソースを張る気はありません。

10 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 13:17:48.03 ]
エラーを読む気はありません。

11 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 13:47:35.40 ]
>>6
Win7 と Win8 は 32/64bit どっち?
あと >>8 だけ貼られても何てスクリプトをどう起動したのかわからなくて困る
コマンドラインも略さず貼って

12 名前:6 mailto:sage [2013/08/07(水) 15:03:25.89 ]
>11
有難うございます。
本文の長さで書き込みエラーになってしまい...

正常に動作していた旧機のWindows7は完全に壊れており32bitか64bitか判別できません。
現機のWindows8は64bitです。

 

13 名前:6 mailto:sage [2013/08/07(水) 15:13:20.44 ]
下記ログに続いて >>8 のログとなります。

\PlayHOME>play deps
Traceback (most recent call last):
File "\PlayHOME\play", line 155, in <module>
status = cmdloader.commands[play_command].execute(command=play_command, app=play_app, args=remaining_args, env=play_env, cmdloader=cmdloader)
File "\PlayHOME\framework\pym\play\commands\deps.py", line 55, in execute
return_code = subprocess.call(java_cmd, env=os.environ)

14 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 15:40:27.67 ]
そのフレームワークのpath通してないんじゃね



15 名前:6 mailto:sage [2013/08/07(水) 15:53:04.17 ]
>>14
このpythonスクリプト以外は正常に動作しているんですよね。。
いちおう以下のcmdを叩いてます。

set JAVA_HOME=C:\Program Files\Java
set PYTHONPATH=C:\play-1.2.5\python
set PYTHONHOME=C:\play-1.2.5\python
set PATH=%PATH%;C:\play-1.2.5
cmd

16 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 16:31:58.23 ]
>>13
java_cmd と os.environ のどっちかがおかしいからエラー時の値を調べて

pdb が使えるなら \PlayHOME> python -m pdb play して
pdb が起動したら continue して args

pdb が使えないのなら
\PlayHOME\framework\pym\play\commands\deps.py の 55 行目に
return_code = subprocess.call(java_cmd, env=os.environ)
ってあるから、その前の行に
print java_cmd, os.environ って挿入してもう一度 play

17 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 17:40:32.74 ]
コンビニ業界初のハッカソン「HackaLawson」、ローソンが19・24・25日に開催 (2013/8/7 15:25)
internet.watch.impress.co.jp/docs/news/20130807_610713.html

 株式会社ローソンは6日、コンビニ業界では初めてだというハッカソン
「HackaLawson(ハッカローソン)2013」を開催すると発表した。

 まず8月19日にゲートシティ大崎イーストタワー(東京都品川区)のローソン本社でアイデアソンを実施。
続いて24・25日に、渋谷ヒカリエ(東京都渋谷区)でハッカソンを実施する。
現在、キャンペーンサイトにおいて参加登録を受け付けている。定員は、先着順で100名程度。

 ローソンはHackaLawsonの開催にあわせ、ローソン店舗の位置情報データを
「オープンストリートマップ」に提供する。
このほか、ローソンがアカウントを持つFacebookやTwitterなどのAPIや、
ボーカロイド「あきこロイドちゃん」の3Dデータや音声などが提供され、
ハッカソンの参加者はこれらを活用したアプリのアイデアや開発技術を競い合う。

 作品は審査の上、「ローソン賞」(からあげクン1年分)などの賞が選出されるほか、
最優秀作品はローソンと共同でのサービス化が検討されるという。


キャンペーンサイト
www.lawson.co.jp/campaign/static/hackalawson/

18 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 17:50:57.30 ]
アイディアはいただきます
お金は払いません

19 名前:デフォルトの名無しさん [2013/08/07(水) 17:57:58.69 ]
Visual c++でCを使う方法を詳しく教えて下さい。拡張子を変えたらフォルダを開いた時はCに変わっているのですが、Visual C++で見ると変わってないです。

20 名前:6 mailto:sage [2013/08/07(水) 18:01:16.82 ]
>>16
有難うございます。
printしてみたらjava_cmdもenv=os.environも値は取れていました。

やり方は指示頂いたので、ちょっとこれからは一人でやってみます。
良い機会なのでデバッグしながらpythonと格闘してみます。

21 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 18:33:37.76 ]
>>20
その取れた値を貼ってくれ
自己完結されてそのまま引っこまれたら似たようなトラブルに遭った人の助けにならない

22 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 22:34:21.93 ]
自作したクラスのインスタンス変数にアクセスするのに、面倒だからアクセサは一切作らないで使っていましたが、あるインスタンス変数だけは加工をして代入と取り出しをしたい。
でもアクセスするのに他と違う書き方になると使い方を間違えそうでやだし、全ての変数にアクセサ書くのも嫌だ。

そんな時のためにproperty関数や@propertyがあると思っているのは正しいですか?

23 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 00:57:11.02 ]
正しくなかったらなんなの?

24 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 18:33:54.57 ]
>>23
まずは質問に答えろよ



25 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 18:39:47.78 ]
>>24は答えてないから質問した本人なんだろうね

26 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 19:11:20.50 ]
>>25
俺はわからんから答えられないんだよ
Pythonにpropertyというキーワードがあることすら知らん

27 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 20:01:28.04 ]
正しいか正しくないかは別として、おマイさんがその機能をそのような目的で
美味しくいただけるのであれば、それでいいのでは?

28 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 20:32:32.36 ]
>>22
正しい解答かどうかは保証しませんが正しくないです
で、どうする?

29 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 21:48:07.59 ]
単にこの認識であってるならそれでいいし違うっていうなら改めたいって話なのでは

30 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 21:58:52.64 ]
へえ
そうですか

31 名前:デフォルトの名無しさん [2013/08/09(金) 03:20:46.37 ]
a = open(sys.argv[1], "r")
b = a.read()

これを1行にできますか?

32 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 13:49:26.45 ]
a = open(sys.argv[1], "r"); b = a.read()

33 名前:デフォルトの名無しさん [2013/08/09(金) 15:48:47.90 ]
a を使わずに変数1つに書き直すことはできないかって意味です!

34 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 16:17:26.97 ]
b = open(sys.argv[1], "r").read()



35 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 16:44:38.68 ]
それcloseってどうすんの?

36 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 21:51:45.37 ]
>>35
明示的なcloseはできない
スクリプト終了時にガベージコレクションが働いて
暗黙的にcloseされる

37 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) 00:16:00.67 ]
>>36
スクリプト終了時かどうかはわからんけどな

38 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) 14:43:50.09 ]
C++風に言えば、ファイルオブジェクトはデストラクタの中でcloseするように
作られてる

そのケースだとその文を実行した時点でファイルオブジェクトへの参照が残らない
(参照カウントがゼロになる)から、CPythonであればすぐオブジェクトが除去されて
closeは実行されるよ

39 名前:デフォルトの名無しさん [2013/08/11(日) 16:10:28.00 ]
終了しないスクリプトで
open().read()
繰り返すとメモリ足りなくなるよね

40 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 16:26:17.95 ]
誰かwith使えって言ってやれよ…

41 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 16:58:16.29 ]
>>39
open('zap','w').write('ooo'*10000)
for i in range(1000*100):
open('zap','r').read()

うちではこのスクリプト走らせても全くワーキングセット増えず
too many open files関連のエラーにもならないし
デバグビルド版のREPL立ち上げてopen().read()やっても
リファレンスカウントが全く増加しないのが確認できるんだけど、どんな環境?

42 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 17:48:46.21 ]
>>40
一行でやること前提の話題だと思ってるんでwithは却下

43 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 17:49:34.82 ]
Pythonスレでインデントのないコードを見るのも悲しいし
脳内インデントしろやとかnbspつけろやゴラアというのも違う気がするので
コードペーストサイトを使う方向にならないかなーと密かに今願い始めた

44 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 18:10:53.66 ]
たわいのないコード片を pastebin にわざわざ読みにいくのは嫌



45 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 16:24:08.75 ]
for i in xrange(n):
&nbsp;&nbsp;&nbsp;&nbsp;pass

46 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 18:14:00.16 ]
ム板のくせに文字参照が使えない悲劇

47 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 18:41:36.94 ]
for i in xrange(n):
    pass

48 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 19:30:35.13 ]
以前は、つかえてた

49 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 19:34:11.16 ]
&#160;

&zwnj;|zwnj
&thinsp;|thinsp
&nbsp;|nbsp
&ensp;|ensp
&emsp;|emsp

‌|8204
 |8201
 |8198
 |8197
 |8196
 |160
 |8194
 |8199
 |12288
 |8195

50 名前:デフォルトの名無しさん [2013/08/12(月) 21:27:28.79 ]
>>47
テスト

51 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:36:20.94 ]
a = ['佐々木希', 168, 80, 58, 82]
というリストがあるとき、a[0]とa[2]をとりだして
['佐々木希', 80]
とするにはどうすれば良いでしょうか。
a[0,2]はだめでした。

52 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:40:00.32 ]
>>51はa[0:3:2]でいけますね。

質問を訂正します。
a[0]とa[2]とa[3]を取り出して、
['佐々木希', 80,58]
とする方法はないでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:55:42.07 ]
[a[0], a[2], a[3]]
この場合は辞書使って {'name': '佐々木希', 'height': 168, ...} とかしたほうがいいかも

54 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 19:26:51.17 ]
>>53
ありがとうございます。スライスの処理にとらわれて、気がつきませんでした。



55 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 21:44:40.48 ]
ひさしぶりにゆとりってかんじ

56 名前:デフォルトの名無しさん mailto:sage [2013/08/15(木) 14:56:26.95 ]
pythonから外部コマンドを「&」付き(バックグラウンド)で実行した場合
その実行したコマンドは放置して、python自体は終了したいのですが
どうしたらいいでしょうか。

ご教授ください。

57 名前:デフォルトの名無しさん [2013/08/15(木) 22:56:54.60 ]
>>56
Python固有じゃないけど、nohupコマンドをかます。

58 名前:56 mailto:sage [2013/08/16(金) 10:25:34.34 ]
def loopThread()
print "th start."
os.system("/bin/bash /usr/local/org/hoge.sh &")
print "th end."
exit
if __name__=='__main__':
print "start."
thread.start_new_thread(loopThread)
print "end."

物凄く端折っていますけど、こんな感じでPython側からshを叩いてます
hoge.sh自体も中身で

while :;do
logger -p user.notice "hogehoge";
sleep 10;
done;

とし、ループしています。

59 名前:56 mailto:sage [2013/08/16(金) 10:31:16.03 ]
やりたいことは以下です。

@python側より、特定の引数にて、ループ状のshを実行したい
A実行されたループ状のshは1プロセスとして実行したい

上記ソースだと、os.systemで実行したプログラムが終了しないと
作成したスレッドが終了せず、後続の処理が行われない

os.systemで流した場合は、ps-auxで確認する限り、別プロセスとして稼動していますが
やはり、スレッド内で実行したプロセスが全て終わらないと親スレッド自体が終了できず、後続の処理が出来ない

class test(threading.Thread): でループ状の処理を作って、スレッド作成した場合は
親プロセス内で、実行したいコマンドが動作しているので? 親スレッドが終わってしまうと子も死んでしまう

60 名前:56 mailto:sage [2013/08/16(金) 10:36:48.86 ]
イメージです。
+−+
|親|←こいつは終了しない
+−+
 | +−+
 +−|子|←親に特定の要求をするとthとして生成される
   +−+
    | +−+
    +−|孫|←孫が自分の中でos.system等で外部コマンドをnohup且つbgでshを起動する
      +−+
この後、孫は終了し、子に戻り、子も終了する。

61 名前:56 mailto:sage [2013/08/16(金) 10:38:01.51 ]
何度も連投すみません

子の中で外部コマンドを実行して、子が終了し
孫的な外部コマンドは別プロセス(pid)を持った状態で放置したいのです






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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