FileNotFoundError:[Errno 2] CGI,python3

时间:2019-03-15 08:26:34

标签: python python-3.x cgi simplehttpserver

我一直在寻找解决方案,但是没有一个帮助我。

要点:

操作系统: Ubuntu 18.04
要运行的文件: /var/www/html/cgi_test/cgi-bin/hello.py (肯定存在)
哪个python3: / usr / bin / python3 (操作系统默认设置)
文件夹cgi_test中的文件/目录权限:

  

drwxrwxr-x 1 cgi-bin
  -rwxrwxrwx 1 cgi-bin / hello.py

/var/www/html/cgi_test/cgi-bin/hello.py的内容:

#!/usr/bin/python3
import cgi
import cgitb; cgitb.enable()
print("Content-Type: text/plain\r\n\r\n")
print('hi')

文件夹cgi_test中的运行命令: python3 -m http.server --cgi --bind 192.168.50.4 8000 在浏览器中访问http://192.168.50.4:8000/cgi-bin/hello.py时出现错误/响应:

Serving HTTP on 192.168.50.4 port 8000 (http://192.168.50.4:8000/) ...
192.168.50.1 - - [15/Mar/2019 08:14:26] "GET /cgi-bin/hello.py HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('192.168.50.1', 52548)
Traceback (most recent call last):
  File "/usr/lib/python3.6/http/server.py", line 1126, in run_cgi
    os.execve(scriptfile, args, env)
FileNotFoundError: [Errno 2] No such file or directory: '/var/www/html/cgi_test/cgi-bin/hello.py'
----------------------------------------
192.168.50.1 - - [15/Mar/2019 08:14:26] CGI script exit status 0x7f00

和浏览器中的空白页。

没有更多的想法可以实现这一目标。

1 个答案:

答案 0 :(得分:0)

可能会晚一点,但是我遇到了类似的问题,通过在cgi(.py)脚本的第一行中使用了正确的python版本来解决。例如。 #!/usr/bin/python3.7