0

Python ファイルを開くことができません。私はPythonを使用するのが初めてで、PHPのバックグラウンドから来ましたが、これは私にとってはまったく異なります。サーバー `public_html/python/index.py' に、単純な hello world コードを含むテスト ファイルを作成しました。

#!/usr/bin/python

print 'Content-type: text/html\r\n'
print '\r\n'
print 'Hello, World!'

私は周りを見回しており、Pythonファイルを実行するためにいくつかの構成手順を実行する必要があるようです。

シェルで y を実行して Python がインストールされ、動作していることを確認しpythonました。

Python 2.4.3 (#1, Feb 22 2012, 16:05:45) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

次に、pythonがインストールされた正しいパスを探しましたが、正しいtype -p pythonです:

user@domain.com [~]# type -p python
/usr/bin/python

最後に、ブログで、 cgi-bin フォルダー外の python ファイルを実行するには、次の行で .htaccess ファイルを変更する必要があることを読みました。

Options +ExecCGI
AddHandler cgi-script .cgi .pl .py

cgi-binこれも機能しませんでしたが、フォルダー内で実行しようとしても、同じエラーが発生します。

念のため、ファイルのアクセス許可も変更しましたが、何も変更しませんでした:

user@domain.com [~]# chmod a+x public_html/python/index.py

このすべての後、Web ブラウザーで URL を開こうとすると、まだ 500 内部サーバー エラーが発生します。

実行するod index.py -cと、次のようになります。

0000000   #   !   /   u   s   r   /   b   i   n   /   p   y   t   h   o
0000020   n  \r  \n  \r  \n   p   r   i   n   t       '   C   o   n   t
0000040   e   n   t   -   t   y   p   e   :       t   e   x   t   /   h
0000060   t   m   l   \   r   \   n   '  \r  \n   p   r   i   n   t    
0000100   '   \   r   \   n   '  \r  \n   p   r   i   n   t       '   H
0000120   e   l   l   o   ,       W   o   r   l   d   !   '
0000135

この謙虚な python 初心者へのヘルプとガイダンスに感謝します。ところで、専用サーバーで WHM と CPanel を使用しています。

4

2 に答える 2

1

\r\n ヘッダーを本文から分離するには、 2 回追加する必要があります。また、すべてのヘッダーは単一の記号で区切る必要があります\r\n

ソースは次のようになります。

import sys

sys.stdout.write('Content-type: text/html\r\n')
sys.stdout.write('\r\n')
sys.stdout.write('Hello, World!')

別の問題は、シバン行の行末である可能性があります。それはUNIXのようにする必要があります。つまり、#!/usr/bin/env pythonで終わる必要があり\nます。行末を表示するエディタで開いてみてください。またはコマンドプロンプトでod -c index.py。行末が表示されます。の場合は\r\n、作成する必要があります\n

アップデート:

オフセット 21 に があります\r。それが問題です。\r次のコマンドで削除します

tr -d \r < index.py > new.index.py

これで行が終了new.index.pyするはずです。\n

于 2012-06-10T05:26:17.953 に答える
0

Apache を使用している場合は、 and を使用する必要がmod_pythonありWSGIます。

于 2012-06-10T05:27:31.587 に答える