Форум сайта python.su
Всем добрый день!
Нужна помощь помощь с CGI-скриптом. Попытался запустить страничку с Hello world, как CGI-скрипт в виртуальной среде. С помощью утилиты pyenv организовал виртуальный каталог /home/eugene/.pyenv/versions/3.6.3/test_env. Затем, в соответствии с https://pythonworld.ru/web/cgi-1.html запустил сервер:
eugene@eu-IP-U430p:~/.pyenv/versions/3.6.3/test_env$ bin/python -m http.server –cgi
Ответ в консоли: Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …
Открыл страничку в браузере: localhost:8000 - всё в порядке:
Directory listing for /
bin/
cgi-bin/
include/
lib/
lib64@
pyvenv.cfg
server.py
Создал папку cgi-bin, в неё поместил файл hello.py, рядом с папкой создал файл server.py/ НО при наборе localhost:8000/cgi-bin/hello.py в консоли появляется исключение:
Exception happened during processing of request from ('127.0.0.1', 50780)
Traceback (most recent call last):
File “/home/eugene/.pyenv/versions/3.6.3/lib/python3.6/http/server.py”, line 1126, in run_cgi
os.execve(scriptfile, args, env)
FileNotFoundError: No such file or directory: ‘/home/eugene/.pyenv/versions/3.6.3/test_env/cgi-bin/hello.py’
Возможно, непорядок с корневой папкой (не туда поместил папку cgi-bin с файлом server.py. Перепробовал все возможные варианты - веб-сервер не видит скрипт hello.py в папке cgi-bin. Буду рад свежим идеям!
Отредактировано incomer17 (Дек. 14, 2017 10:42:57)
Офлайн
Попробуй hello.py положить рядом с майновым файлом, который отвечает за работоспособность сервера. И вместо полного пути просто напиши “hello.py”
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
DamMercul, я уж во все мыслимые папки подкладывал, а уж насчёт путей… так как без них? У меня же виртуалка. Дело в том, что цель была запустить в виртуальной папке (test_env). По идее там и должны находиться запускаемые скрипты и сервер (забыл написать. что предварительно активировал папку). Каталоги на страничке. вижу, а вот скрипт сервер не может найти.. Стоит сказать, что в “параллельной” виртуальной папке my_env (т.е. тоже под 3.6.3 - версией питона) у меня установлена пирамида и аналогичный скрипт (с учётом на фреймворк) проходит на ура. Хотелось “вручную”, без пирамиды, запустить скрипт. Увы. Если честно. то стало жалко потраченного времени. В конце-концов, работать всё-равно буду с пирамидой. А за отклик спасибо. Вы - единственный, кто на сегодня из 3-х форумов (десятки человек просматривало) ответил. А то я уже ощутил себя вопиющим в пустыне.
Офлайн