質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

2回答

1290閲覧

python環境構築したxserverでpandasやnumpyを使用したい。

shio2345

総合スコア17

0グッド

0クリップ

投稿2022/07/22 08:11

前提

タイトルの通り、xserverでpandas、numpyを使用したいのですが、[Internal Server Error]が表示されてしまいます。

https://dattesar.com/xserver-pip-flask/

上記サイト等をもとにターミナルからxserverにSSH接続し、xserver上にanacondaをインストールしてpython環境を構築しました。
pipコマンド(試しにcondaコマンドでも)でnumpy, pandasをインストール済みです。

また、簡単なhtmlファイル等をhttp://[サーバーID].xsrv.jp/testapp/test (testappは仮想環境名, testは実行するページ(関数)名)で表示させることはできています。

上記サイトやその他「xserverにpython(flask)環境を構築する」等のサイトを見ても、numpyやpandasはダウンロードしているものの、実際にそれらを使用して実行している例が見つからなかったため、こちらで質問させていただきました。

実現したいこと

・正常にpandas, numpyが公開サイト上で機能していることを確かめたい。
・pandasのpd.read_csv('~.csv')を使用して、csvファイルを読み込みたい。

・これらの動作が完了したら、webシステムに使用する予定のtweepyなども加えていきたい。

発生している問題・エラーメッセージ

**Internal Server Error** The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

該当のソースコード

python test_app.py

1from flask import Flask, redirect, render_template, render_template_string, request, url_for 2import numpy as np 3import pandas as pd 4 5app = Flask(__name__) 6 7@app.route('/') 8def index(): 9 return render_template('index.html') 10 11#---------------- 12#この部分でpandasの動作テストをしています。 13@app.route('/test') 14def pandas(): 15 str = pd.read_csv("〜.csv") #strは整数型リスト(仮) 16 text = str[0] 17 18 return text #イメージとしては"Hello World!"のような表示されたサイトが閲覧できる状態 19#----------------- 20 21if __name__ == '__main__': 22 app.run(debug=True)

index.cgi

1 2#! /home/xs020203/anaconda3/envs/[仮想環境名(ここにpandasが入っている)]/bin/python3.8 3from wsgiref.handlers import CGIHandler 4from test_app import app 5CGIHandler().run(app) 6

htaccess

1RewriteEngine On 2RewriteCond %{REQUEST_FILENAME} !-f 3RewriteRule ^(.*)$ /[作成フォルダ名]/index.cgi/$1 [QSA,L] 4

補足情報(FW/ツールのバージョンなど)

インストールしたanacondaバージョン
Anaconda3-2021.11-Linux-x86_64.sh

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

pandasが正常に動作していることが確認できました。
Internal Server Error の原因はpandasの設定等のミスではなく、ただ単にreturn textの型設定が誤っているがための内部エラーでした。。

xserverではデバックをオンにしてエラー内容の確認ができない?ため、エラー内容の確認は別で取る必要があるなと再認識しました。。

目を通してご協力くださった皆様ありがとうございました。

投稿2022/07/22 09:54

shio2345

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

また、簡単なhtmlファイル等をhttp://[サーバーID].xsrv.jp/testapp/test (testappは仮想環境名, testは実行するページ(関数)名)で表示させることはできています。

と記載されているので、正常に動作しているように思われますが何が問題になっていますか?
Internal Server Errorはどのrouteにアクセスすると発生しますか?

投稿2022/07/22 09:27

East_san

総合スコア407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shio2345

2022/07/22 09:46

閲覧いただきありがとうございます! @app.route('/test') def pandas(): 以下省略 に当たります、pandasの動作をチェックしたrouteで「Internal Server Error」が発生しております。 「 http://[サーバーID].xsrv.jp/testapp/test 」 内の「 /test 」は、  app.route('/test') のなかの /test を指定した形ですので、 def index(): を読み込む際にのURLは http://[サーバーID].xsrv.jp/testapp/ となっております。
East_san

2022/07/22 09:54

flaskを起動するとログが出力されると思いますが、Internal Server Errorが発生した時のログは提示できますか?
East_san

2022/07/22 09:55

もしくはexport FLASK_ENV=development(windowsであればset FLASK_ENV=development)を設定したあとにflaskを起動するとInternal Server Errorが発生するとエラーがブラウザに表示されるのでflaskのデバッグ機能を使っても良いです
shio2345

2022/07/22 09:56

大変お恥ずかしいのですが、解決済み文章の通り、関数内の返り値のミスでした。 目を通していただきありがとうございました! 当方まだプログラム初心者なのでまたこちらでお聞きすることがあるかと思いますが、その時にまたよろしくお願いいたします..!!
East_san

2022/07/22 09:56

解決したようで良かったです!
shio2345

2022/07/22 09:58

export FLASK_ENV=development についてのご教授ありがとうございます! 今後の開発においてもエラー内容表示はとても助かります! 取り入れてみます
shio2345

2022/07/23 06:23

お手数ですが、export FLASK_ENV=developmentを設定してflaskを起動する方法もお聞きしたいですm(__)m ターミナルからxserverにssh接続して、export FLASK_ENV=developmentを入力し、flask runを行いましたが、 Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory. となってしまいました。。
shio2345

2022/07/23 06:24

ちなみにOSはMacです!
East_san

2022/07/23 06:33

export FLASK_APP=test_app export FLASK_ENV=development flask run という流れになるかと思います。
shio2345

2022/07/23 07:46 編集

ご返信いただきありがとうございます! 一行目のexport FLASK_APP=test_app を加えて実行したところ、 Error: Could not import 'test_app'. と表示されてしましました。 ファイルの位置については [サーバーID].xsrv.jp >public.html >>flask_app (ファイルフォルダ名) >>>test_app.py という形になっております。 試しに export FLASK_APP=flask_app/test_app と変更してみましたが、エラー内容は同等のものでした。。 お手数ですが原因や解決方法をご存知でしたらご教授くださいm(__)m
East_san

2022/07/23 07:21

例えば現在の作業ディレクトリがtest_dirとして以下のようなフォルダ構成になっているとします test_dir/public.html test_dir/test_app.py このときtest_dir内で export FLASK_APP=test_app export FLASK_ENV=development flask run とするとうまくいくはずですがどうでしょうか? flask runを実行する時のディレクトリ直下にtest_app.pyがない場合は、ご提示いただいたエラーが出ます。 一旦作業ディレクトリを確認してみてはどうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問