トップページ > 記事閲覧
PythonによるCGI利用についての質問
投稿日 : 2019/04/01(Mon) 17:11
投稿者 たけした
参照先
いつもお世話になっております。

Xrea Freeプラン、s1007.xrea.comで利用している者です。

Python3でCGI処理を行っておりますが、どうしてもわからなかったのこちらで質問させていただきます。

CSVファイルを読み込もうと思い、Python3 のPandas、numpyの両モジュールをインポートしましたが、500エラーが出てしまいます。
SSHにてPipを使い、サーバーにインストールされていることは確認しております。
どうやら利用制限?されているようです。


1. FreeプランではPandas, numpyは使用できないのでしょうか。
2. ほかに利用が禁止されている、もしくは、利用可能なモジュールをご教示いただけますか。

お忙しいところ何卒よろしくお願いいたします。
Re: PythonによるCGI利用についての質問
投稿日 : 2019/04/03(Wed) 10:07
投稿者 スタッフ ◆OKSXpIjDx1k
参照先
たけした 様

日頃より弊社サービスをご愛顧くださり、ありがとうございます。
お問い合わせの件についてご案内させていただきます。

Xrea FreeおよびXREA Plusにつきまして、どちらのプランでもPythonは
同じモジュールをご利用いただけます。

しかしながらpipに関しましては、現在Python2に紐づいていますので、
pip freezeといたしますと、Python2のモジュールが表示されます。

Python3でご利用可能なモジュールの一覧は、python3 -m pip freeze で
ご確認いただければと存じます。

―――――――――――――――
pip バージョン確認:pip -V
python2モジュール確認:python -m pip freeze
python3モジュール確認:python3 -m pip freeze
―――――――――――――――

現在、上記のコマンドで確認いたしますと、Pandas, numpyは「x1007.xrea.com」
上のPython2でご利用いただけますが、python3にはインストールされてい
ないため、ご利用ができかねてしまいます。

ご要望につきまして、担当部門に報告させていただきますが、
お急ぎの場合には、お手数をおかけいたしますがお客様のコンテンツ内に
venv等にてインストールされることもご検討いただけますと幸いでございます。

XREAプラン・機能
https://www.xrea.com/plan/

恐れ入りますが、以上ご確認の程よろしくお願いいたします。
その他ご不明な点がございましたら、お気軽にお問い合わせください。

今後とも弊社サービスをよろしくお願い申し上げます。
Re: PythonによるCGI利用についての質問
投稿日 : 2019/04/04(Thu) 11:12
投稿者 たけした
参照先
返信ありがとうございます。

Pipでインストールされているのは確認しました。しかし、読み込みできませんでしたので連絡いたします。

1. 出力エラー確認するコードを作成し、importエラーの原因を確認しようと思いました。

確認用.py--------------------------------------------------------------------------------
#!/usr/local/bin/python3
import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='UTF-8')
print("Content-type: text/html; charset=UTF-8")
print('')

try:
import テスト
print('成功')
except Exception as e:
print('失敗', e.args)
-----------------------------------------------------------------------------------------
結果:

失敗 ("No module named 'テスト'",)
-----------------------------------------------------------------------------------------



しかしながら以下のコードでは、そもそもエラー出力が行えませんでした。
確認用2.py-------------------------------------------------------------------------------
#!/usr/local/bin/python3
import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='UTF-8')
print("Content-type: text/html; charset=UTF-8")
print('')

try:
import numpy
print('成功')
except Exception as e:
print('失敗', e.args)
-----------------------------------------------------------------------------------------
結果:

Internal Server Error
-----------------------------------------------------------------------------------------
すべての外部モジュールが読み込めないのではなく、どうやら一部が読み込めていないようです。
読み込めた:bs4, pytz, six, urllib3, idna


2. SSH上から上記2つ目のコードを試したら実行できました。

CGIの処理がうまくいっていないと思ったのですが、専門知識がなくどうしたらいいのかまったく見当がつきません。

お忙しいところ大変ではございますが、アドバイスをいただけると幸いです。
Re: PythonによるCGI利用についての質問
投稿日 : 2019/04/04(Thu) 11:31
投稿者 たけした
参照先
追記になりますが、

.htaccessにAddHandler cgi-script .pyと記載しpythonファイルを実行しております。
Re: PythonによるCGI利用についての質問
投稿日 : 2019/04/05(Fri) 16:25
投稿者 スタッフ ◆OKSXpIjDx1k
参照先
たけした 様

日頃より弊社サービスをご愛顧くださり、ありがとうございます。
お問い合わせの件についてご案内させていただきます。

SSH上から実行したPythonスクリプトにつきまして、ブラウザから実行した際に
Internal Server Error となる場合、.htaccessには、AddHandler cgi-script .py と
記載していただいているとのことでございますため、実行ファイルのユーザーと
グループに実行権限が付与され、ファイルの属性が755等になっていることをご確認の上、
改行箇所に「\n\n」を追加いただいてお試しいただければと存じます。

恐れ入りますが、以上ご確認の程よろしくお願いいたします。
その他ご不明な点がございましたら、お気軽にお問い合わせください。

今後とも弊社サービスをよろしくお願い申しあげます。