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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2793閲覧

1行目のpython.exeのパスを最後まで書かないと実行できない(500エラー)

otftrough

総合スコア476

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/22 07:21

編集2020/02/22 12:43

今日からPythonを勉強しはじめた初心者です。
.pyファイルの1行目に、#!C:\Users\egcyu\AppData\Local\Programs\Python\Python38\python.exeと書かないと実行できません。
ネット上のサンプルでは、最後のpython.exeまで書いていませんが、私の環境では最後まで書かない場合http500エラーが出ます。
ネットでは、#!/usr/bin/python3だったり(サイト)、#! C:\Python35\pythonだったり(サイト)、python.exeが置いてあるフォルダ(と思われる)パスを書いています。
プログラミングでよくある「とりあえず動いてるからok」みたいなのは嫌なので、どうして参考サイトのような書き方で動かせないのか知りたいです。

(エラーログ)

log

1[Sat Feb 22 15:57:38.369781 2020] [cgi:error] [pid 13636:tid 1180] (OS 5)アクセスが拒否されました。 : [client ::1:62438] couldn't create child process: 720005: sample.py, referer: http://localhost/study_python/ 2[Sat Feb 22 15:57:38.369781 2020] [cgi:error] [pid 13636:tid 1180] (OS 5)アクセスが拒否されました。 : [client ::1:62438] AH01223: couldn't spawn child process: D:/OneDrive/otofuto.info/study_python/sample.py, referer: http://localhost/study_python/

設定が間違っているのでしょうか?

設定は、httpd.confを編集して、
Options Indexes FollowSymLinks

Options Indexes FollowSymLinks ExecCGI
に書き換えたのと、
#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi .py
に書き換えてApacheを再起動しています。

[環境]
OS
Windows 10 64bit
Server
Server version: Apache/2.4.41 (Win64)
D:/Apache24/bin
Document root
D:/OneDrive/otofuto.info/
Python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
C:\Users\egcyu\AppData\Local\Programs\Python\Python38

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

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

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

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

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

dodox86

2020/02/22 09:22

> ネット上のサンプルでは、最後のpython.exeまで書いていません と言うのが分かりませんが、どのように書いてあったのでしょうか。 CGIのスクリプトである.pyファイルの1行目のシバン(シェバン, Shebang)は、CGI実行時のインタープリター、実行ファイルを指定する部分なので、むしろ、フルPATHで指定している今のかたちで動いているのであれば、正しいです。何を問題としているのでしょう。ネット上のサンプルと違っているけど動いてしまっているのが気になるのでしょうか。
guest

回答1

0

ベストアンサー

ネット上のサンプルも、「python.exeが置いてあるフォルダ(と思われる)パスを書いて」いるのではなく、実行するファイルのパスが書いてあるのです。

プラットフォームがlinuxであれば実行ファイルにはそもそも拡張子.exeが付いておらず、/usr/bin/pithon3はpython3のインタプリタそのものです。
windowsの場合、実行ファイルには.exeが付きますが、shebangには.exeを書かなくてもOKです。

なので、あなたの場合、
#!C:\Users\egcyu\AppData\Local\Programs\Python\Python38では動かないでしょうが、#!C:\Users\egcyu\AppData\Local\Programs\Python\Python38\pythonであれば動くはずです。

投稿2020/02/22 15:14

編集2020/02/23 12:12
TakaiY

総合スコア12774

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

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

otftrough

2020/02/23 03:00

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問