pythonスクリプト実行不可

このQ&Aのポイント
  • pythonスクリプトをCGIとして動作させるとエラーになります。
  • ブラウザから直接起動するとExec format errorが出ます。
  • perl CGIは正常に動作していますが、python CGIはエラーになります。
回答を見る
  • ベストアンサー

pythonスクリプト実行不可

pythonスクリプトをCGIとして動作させるとエラーになります。 環境は、 OS : CentOS 6.4 Python : 2.6.6 pythonソースは、 #!/usr/bin/python # coding: utf-8 print "Content-type: text/html; charset=UTF-8" print print ブラウザーから、このCGIを直接起動すると、/var/log/httpd/error_logに下記のエラーが出ます。 [Fri Oct 18 12:45:28 2013] [error] [client 10.1.34.89] (8)Exec format error: exec of '/home/httpd/cgi-bin/test.py' failed Exec format errorとは、何でしょうか? perl CGIは、正常に動作しているのですが。 アドバイスよろしくお願いします。

  • Python
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

そのログからすると, スクリプトのファイル名は /home/httpd/cgi-bin/test.py でいいのかな? od -xc /home/httpd/cgi-bin/test.py ってできますか?

YkazubonY
質問者

お礼

BOM付きUTF-8になっていました。viで消したつもりだったのですが、元の形式を保持するのですね。ご指摘ありがとうございました。

YkazubonY
質問者

補足

こんな感じです。 nsbbsv1[105]% od -xc test.py 0000000 bbef 23bf 2f21 7375 2f72 6962 2f6e 7970 357 273 277 # ! / u s r / b i n / p y 0000020 6874 6e6f 230a 6320 646f 6e69 3a67 7520 t h o n \n # c o d i n g : u 0000040 6674 382d 0a0a 7270 6e69 2074 4322 6e6f t f - 8 \n \n p r i n t " C o n 0000060 6574 746e 742d 7079 3a65 7420 7865 2f74 t e n t - t y p e : t e x t / 0000100 7468 6c6d 203b 6863 7261 6573 3d74 5455 h t m l ; c h a r s e t = U T 0000120 2d46 2238 700a 6972 746e 700a 6972 746e F - 8 " \n p r i n t \n p r i n t 0000140 000a \n 0000141 nsbbsv1[106]%

その他の回答 (1)

回答No.1

https://www.google.co.jp/search?q=Exec+format+error 改行コードと文字コードとpyithonのパスは確認しました?

YkazubonY
質問者

補足

改行コードは、LFで間違い有りません。 文字コードは、漢字が入っていないので、ASCIIと同じです。 パスは、/usr/bin/pythonで間違い有りません。 RHEL5のpyhton 2.4.4では、正常に動作するので、 CeonOS 6.4固有の問題かもしれないです。

関連するQ&A

  • pythonのCGIでページを遷移したい

    PythonのCGIserverを使っています。 /cgi-bin/hoge.py から /cgi-bin/foo.py へとページを遷移させたいのですが、うまくいきません。 どうすればいいですか? 以下、hoge.pyのソースです。 #!/usr/local/bin/python # coding: utf-8 (中略) print "Location: /cgi-bin/foo.py\n\n" 他の方法として、 import foo として、fooの関数やメソッドを呼ぶことも考えたのですが、 これもうまくいきません。。

    • 締切済み
    • CGI
  • MAMPでpythonを実行させたい

    OSX10.8を使っています http://www.python.jp/Zope/download/pythoncore python-2.7.3-macosx10.6.dmg(32bit/64bit両用) これをインストールしました 以下の記述を test.pyとして保存し #!/usr/bin/env python print "Content-type: text/html\n" print "<html><body>Python is awesome !</body></html>" MAMPを起動しtest.pyを表示させると #!/usr/bin/env python print "Content-type: text/html\n" print "<html><body>Python is awesome !</body></html>" がそのままブラウザに表示されます application/mamp/conf/apache/httpd.confを開いて #AddHandler cgi-script .cgiのコメントを外し AddHandler cgi-script .cgi .py としapacheを再起動させtest.pyを表示させると インターナルサーバーエラーになりました 何をやり残しているのか、解決方法、または参考になるページを教えて下さい よろしくお願いします

  • centos python

    以前WindowsでPythonのWebプログラムを書いていました。 webサーバーはapacheを利用しています。 そちらをcentOS(apache)に持って行きたいです。 ↓↓↓↓こちらがwindowsでのスクリプトです #! C:/Python27/python # coding: utf-8 temple_body= u""" <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Pythonタイトル</title> </head> <body> <h1>Python テンプレート</h1> テンプレートです</br> </body> </html>""" try: print "Content-type: text/html;charset=utf-8\n" print ( temple_body.format() ).encode('utf-8') except Exception as e: print e ただテンプレートと表示されるだけのものです。 この1行目の #! C:/Python27/python を #! /usr/bin/python2.7 と直したところ サイトは開けず 500 Internal Server Error が、 エラーログには以下のようなものが出ていました。 End of script output before headers: index.py AH01215: (13)Permission denied: exec of '/var/www/html/index.py' failed #! /usr/bin/python2.7の部分が問題だと思うのですが どのように直せばいいのかがわかりません。 windowsの時は.exeを探し、Pathを指定しました。 しかし、centosでpython.exeに相当するものがどこにあるのか分りません。 centosの場合どのようなぱすを指定すれば良いのでしょうか?

  • pythonのプログラムを走らせるには?

    使用するソフトウェアの関係でWeb(HTMLまたはPHP)とPythonの連携が必要になりました。 しかしPythonをWebで扱ったことがなくいまいちどうしたらいいのか分りません。 <form action="/python/pythontest.py" method="GET">  <input type="submit" name="submit" value="更新"> </form> といった形で呼び出しているのですがファイルが開かれるだけでptythonのプログラムが実行されません。 pythonのプログラムは #!/usr/bin/env python # coding: utf-8 import cgi from datetime import datetime html_body = u""" <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <body> %s </body> </html>""" content='' print "Content-type: text/html;charset=utf-8\n" print (html_body % content).encode('utf-8') と書いています。 何が原因なのでしょうか? /usr/bin/env python のパスがうまく通っていないからでしょうか?

    • ベストアンサー
    • HTML
  • Pythonを用いてCGIを作る勉強をしています。

    Pythonを用いてCGIを作る勉強をしています。 さて、CGIHTTPServerでCGIのテストをしようとしたところ、ぜんぜん動いてくれません。ちゃんとファイルのパーミッションも755にしました。 自分の力だけではどうにもならなかったため、ここで質問させてもらいます。 どうしたらよいのでしょうか。 僕がつくったPythonのソース test.pyは #! /usr/bin python print "Content-type: text/html\n" print "<html><body>Hello!</body></html>" です。 本来ならブラウザで「http://127.0.0.1:8000/cgi-bin/test.py」 とすれば動いてくれるはずなのに以下のようなエラーメッセージが出ます。 localhost - - [19/May/2010 23:46:43] "GET /cgi-bin/test3.py HTTP/1.1" 200 - Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/CGIHTTPServer.py", line 255, in run_cgi OSError: [Errno 13] Permission denied localhost - - [19/May/2010 23:46:43] CGI script exit status 0x7f00 PCの環境はMacOSX10.6です。 だれか分かる方。教えていただけないでしょうか?? よろしくお願いします。

    • 締切済み
    • CGI
  • pythonのエラーについて教えて下さい。

    pythonの勉強をおこなっている超初心者です。 ネットでみた。以下のサンプルコードを実行しようとしました。 # -*- coding: utf-8 -*- print u'モジュールのロード' def test(): print u'関数:testを呼び出しました' if __name__ == '__main__': print 'python-izm' # print 'パイソンイズム' test() しかし、以下の様なエラーとなってしまいます。 File ”test02.py"、line 9 print ’python-izm'  ^ indentionError:expected an indented block ネット調べてみたとことpythonのインデントのエラーだとわかりました。 pythonはインデントで実行範囲を認識するので、 そこがうまく記述できていないであろうとは思うのですが、何回か試したのですが うまく動いてくれません。 どなたか御指南下さい。

  • PythonのUnicode文字について 

    PythonのUnicode文字について  最近pythonを始めました。このサイト(http://www.pythonweb.jp/index.html)でいろいろと勉強しているのですがUnicode文字についてよくわかりません。 #coding: UTF-8 print u"こんにちは" と入力するとなぜか File "test.py", line 2 print u"こんにちは" SyntaxError: (unicode error) 'utf8' codec can't decode byte 0x82 in position 0: unexpected code byteと表示され出力されませんでした。何故でしょうか。unicode文字についても説明をお願いします。

  • pythonファイルの文字化け

    MAMPを通じて以下のpythonファイルをchromeで表示したのですが、日本語の部分が文字化けしてしまいます。 #!C:/MAMP/bin/python/bin/python #coding:utf-8 print "content-type: text/html" print "" print "こんにちは" 全面的に参考にしたudemyのサイトで解決法を質問したのですが、 「Chromeの言語判定が空振りしているようなので、 <html lang="ja"> とhtmlタグのlang属性を追加して再読み込みしてみてください。」 と言われました。 しかし、pyファイルのどこにこのhtmlタグを入れるのか理解できません。 chromeのデベロッパーツールでこのタグを追加しても変わりませんでした(そもそも根本的解決になっていません)。 どのようにして解決すれば良いのでしょうか。

  • Pythonでの日本語処理

    Pythonでの日本語処理 Windows環境でPythonを勉強し始めたところです(本当に始めたばかりです)。 エンコードは「utf-8」が推奨されているようなので、 # coding: utf-8 print u'全角でも' print u'半角でも' print u'ともかくutf-8でエンコードして、且つ頭にuを付ける。' というような書き方で統一してしまおうと思っているのですが、 Pythonに詳しい方のご意見をいただきたく。 よろしくお願いいたします。

  • pythonのエラーについて教えてください。

    pythonの勉強しています。練習として以下の様なコードを書きました。 #!/usr/bin/python # coding=utf-8 f = open('aw1.txt' 'r') for row in f: line_data = row.split(' ') print(line_data(1)) f.close() aw1.txtというファイルは自分でviで作成しました。 このpythonスクリプトを実行すると IOError: [Errno 2] No such file or directory: 'aw1.txtr' というエラーになってしまいます。 でも f = open('aw1.txt' 'r') と書いて なぜ 'aw1.txtr'というファイルがないというエラーとなるのかがわかりません。 どこが間違っているのでしょうか? どなたか教えていただけないでしょうか?