为啥我的 python 代码出现内部服务器错误?

Posted

技术标签:

【中文标题】为啥我的 python 代码出现内部服务器错误?【英文标题】:Why am I getting internal server error with my python code?为什么我的 python 代码出现内部服务器错误? 【发布时间】:2021-09-17 20:40:32 【问题描述】:

我正在试验和开发一个 Flask 网页,它将使用 mysql 数据库中的一些数据,经过一些编码后,我遇到了内部服务器错误,我不知道为什么。

几天后我无法解决问题,我该怎么做才能让它工作?

我正在使用 Python3,托管的服务器是 Ubuntu 系统,我现在可以使用我通过 Hyper-V 托管的服务器 LAN 域(服务器名称)名称通过 LAN 访问该站点,因为我没有一台装有 Ubuntu 的备用 PC。

奇怪的是,当我在笔记本电脑上进行本地测试时,只有当我想连接托管在服务器虚拟机上的页面时,才会收到 500 错误。

因为我不知道我将大部分文件上传到 GitHub 的问题出在哪里,这当然会被更改,然后出于安全原因删除,但现在更容易了。

链接: https://github.com/Csabatron99/Webpage

这里是 apache2 错误日志

[Wed Jul 07 12:42:08.597500 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170] mod_wsgi (pid=10179): Failed to exec Python script file '/var/www/FlaskApp/flaskapp.wsgi'.
[Wed Jul 07 12:42:08.597550 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170] mod_wsgi (pid=10179): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'.
[Wed Jul 07 12:42:08.597762 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170] Traceback (most recent call last):
[Wed Jul 07 12:42:08.597784 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]   File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in <module>
[Wed Jul 07 12:42:08.597788 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]     from FlaskApp import app as application
[Wed Jul 07 12:42:08.597793 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]   File "/var/www/FlaskApp/FlaskApp/__init__.py", line 11, in <module>
[Wed Jul 07 12:42:08.597795 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]     from .dbconnect import connection_db
[Wed Jul 07 12:42:08.597799 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]   File "/var/www/FlaskApp/FlaskApp/dbconnect.py", line 3, in <module>
[Wed Jul 07 12:42:08.597802 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170]     import mysql.connector
[Wed Jul 07 12:42:08.597811 2021] [wsgi:error] [pid 10179] [client fe80::1047:5664:1d7b:6d86:1170] ModuleNotFoundError: No module named 'mysql'
[Wed Jul 07 12:42:08.816124 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171] mod_wsgi (pid=10178): Failed to exec Python script file '/var/www/FlaskApp/flaskapp.wsgi'., referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816173 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171] mod_wsgi (pid=10178): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'., referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816386 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171] Traceback (most recent call last):, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816409 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]   File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in <module>, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816413 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]     from FlaskApp import app as application, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816418 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]   File "/var/www/FlaskApp/FlaskApp/__init__.py", line 11, in <module>, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816426 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]     from .dbconnect import connection_db, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816431 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]   File "/var/www/FlaskApp/FlaskApp/dbconnect.py", line 3, in <module>, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816433 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171]     import mysql.connector, referer: http://tikva-server-hv/
[Wed Jul 07 12:42:08.816443 2021] [wsgi:error] [pid 10178] [client fe80::1047:5664:1d7b:6d86:1171] ModuleNotFoundError: No module named 'mysql', referer: http://tikva-server-hv/

这是来自 dbconnect.py 的代码

import mysql.connector

def connection_db():
    conn1 = connector.connect(host="localhost",
                                    user = "root",
                                    passwd = "pass",
                                    db = "db")
    c1 = conn1.cursor()
    return c1, conn1

【问题讨论】:

您可以在日志中看到您的服务器正在运行或使用 app.run(debug=True) 运行应用程序。请不要给你的 repo 链接,让人们阅读它,而是提供minimal reproducible example。另请阅读how to ask。 好的,我会查一下日志。在 repo 中只是一个实验代码,而不是我要使用的实际代码,所以我认为不会有任何问题。至于如何提问部分,我不经常使用这个网站,如果我问错了问题或其他什么,我很抱歉。 apache 2 日志说,在 .wsgi 文件中,这一行会导致问题“从 FlaskApp 导入应用程序作为应用程序” 请edit您的问题并将日志粘贴到那里以便更好地理解。而且我们在 github repo 中也看不到任何 wsgi 文件。所以我们无能为力。 完成,我在这里上传了 wsgi 【参考方案1】:

不要下载我把 content_management 误认为是 pip 模块的模块。可以卸载模块pip uninstall contentful_management

出现错误是因为您在 init.py 中导入模块。

试试这个:

from name_of_the_parent_directory import content_management 

你尝试使用

from . import content_management

name_of_the_parent_directory - 表示父目录,在你的 github 中它将是网页。

【讨论】:

在服务器上 init.py 和 content_management.py 在同一个目录中,所以我不太明白我需要做什么。顺便说一句,我尝试插入目录的名称,然后插入 content_management,但没有解决问题 根据我发现要导入 python 文件模块,您只需要以下代码: import 将本地 python 模块导入 init.py 时,您根本无法执行 import filename 。我编辑了答案,你可以看看。至于为什么我显然不知道,但你可以看看类似的问题。 ***.com/questions/34753206/… 所以更新:使用您发送的链接,它现在正在工作。但现在数据库连接器出现错误。我使用这个 > github.com/mysql/mysql-connector-python 您能否更具体地说明该错误。什么样的模块错误说 dbconnect 或 mysql-connector。请通过编辑再次粘贴日志。我可能听起来很粗鲁,但如果不知道正确的错误,我无法帮助你。

以上是关于为啥我的 python 代码出现内部服务器错误?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:为啥我的 ajax 请求返回“500(内部服务器错误)”?

PHPUnit错误未定义变量

当我使用标志覆盖率运行 Phpunit 时,出现错误:未定义的变量工厂

为啥,致命错误:在...中找不到类“PHPUnit_Framework_TestCase”?

phpunit 测试返回 302 验证错误,为啥不返回 422

为啥会出现这个错误?我们不能在函数括号内使用格式宏吗?