☆☆ 新着記事 ☆☆

2018年9月28日金曜日

Python3 Local DirectoryとPATHなど トラブル・シュート

pyファイルをローカル・サーバーで実行できなくなったので、トラブルシューティング。

ブラウザから、cgi-binディレクトリにアクセスする際のエラーメッセージ。

Error code: 403
Message: CGI script is not a plain file ('/cgi-bin/').
Error code explanation: HTTPStatus.FORBIDDEN - Request forbidden -- authorization will not help.


1. Djangoを入れてから実行できなくなった?

PATHを確認していく。

確認方法)
左下バー・Windowsアイコン -> コンピュータ -> 右クリック -> プロパティー ->
左サイドバー・「システム詳細設定」  -> 「右下・環境変数」

現時点の設定)
C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37

ちなみに、IDLEからのパスは以下。
C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37


**Script以下の記述が不要なのでは?
ということで。
\Scripts\;C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37
削除してみる。

挙動確認)
ローカル・サーバーにアクセスすると強制切断されるようになった。
これはWorse な事態になった。

-> いや、この強制切断は、上記の403 エラーメッセージが出たあとに、
他のフォルダにアクセスしようとすると、切断されるようだ。

最初から、cgi-bin以外のフォルダにアクセスしようとすると問題なく
あくせすできる。 pyファイルは実行されずに、コードがそのまま表示される。


2. コマンドラインから、ローカルサーバーを立ち上げてみる。
やり方は、ここ。
https://mycodingjp.blogspot.com/2018/05/pythonweb.html

ローカルサーバーは立ち上がるが、pyファイルは
やはり、コードがそのまま表示されてしまう。

強制切断された時のsocket...のエラーは、httpのコマンドラインに表示されなくなった。
(強制切断された時は出ていたが。。。)

3. フォルダを新規に作成してみる。
simpleserver.pyを使ったやり方。
コマンドラインからのやり方。の2通りでローカル・サーバーを立ち上げて
test.pyを実行してみるが、いずれも、コードがそのまま表示される。

本当に困った。

simpleserver.pyやcgiserver.py を実行して、ローカルサーバーは立ち上がるので、
.pyをPythonが認識できないという訳でもなさそう。


こんなのもあった。

① 起動コマンド: python -m http.server -- bind local.host --cgi 8000
そして
② コマンド: python -mwebbrowser http://local.host:8000/cgi-bin/000.py // 新しくbrowserを開くということ。

しかし、①のコマンドを実行すると、
socket.gaierror: [Errno 11004] getaddrinfo failed.
となってしまった。


結局、Pythonをアンインストール・再インストールをして、直ったよう!!!

1週間くらい時間がかかった!!

参考)
Python 2.x なので参考になるか不明?
http://d.hatena.ne.jp/uriyuri/20081024/1224839381

0 件のコメント:

コメントを投稿