前提・実現したいこと
apache上でpyenvのpythonの呼び出しをしたいです.
pyenvのpythonの実行ファイルのpathを指定したときに,以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
[Tue Jul 10 09:24:32.665701 2018] [cgi:error] [pid 4618] [client ::1:61889] AH01215: (8)Exec format error: exec of '/Library/WebServer/CGI-Executables/pyworks/form_expla.py' failed: /Library/WebServer/CGI-Executables/pyworks/form_expla.py [Tue Jul 10 09:24:32.665872 2018] [cgi:error] [pid 4618] [client ::1:61889] End of script output before headers: form_expla.py
該当のソースコード
python
1#!/Users/myname/.pyenv/shims/python 2import cgi 3import sys 4 5print("Content-Type: text/html\n") 6 7print("<html>Hello World<body>") 8print("%s " % "<br>"+sys.version+"<br>") 9 10
試したこと
myPCname:CGI-Executables myname$ which python
/Users/myname/.pyenv/shims/python
から/usr/bin/env pythonに変更.
python
1#!/usr/bin/env python 2import cgi 3import sys 4 5print("Content-Type: text/html\n") 6 7print("<html>Hello World<body>") 8print("%s " % "<br>"+sys.version+"<br>") 9 10
するとエラーは消えてhttp://localhost/cgi-bin/pyworks/form_expla.py
からアクセス可能となる.
ブラウザ上での出力結果は以下である.
Hello World 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
しかし,デフォルトのpythonではなく, pyenv-virtualenvで実行するpythonのバージョンと,その時のパッケージが入っている環境で実行したい.
-なぜ,which python で出てくるpythonのパスでは, Apache上でエラーが出て,呼び出せないかがわかりません.
分かる方いたら,ぜひともなにかご教授頂けると幸いです.
補足情報(FW/ツールのバージョンなど)
myPCname:CGI-Executables myname$ python -V
Python 3.6.1
myPCname:CGI-Executables myname$ pyenv version
3.6.1 (set by /Users/myname/.pyenv/version)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/10 06:37 編集
2018/07/10 06:50
2018/07/10 07:21