首页 > 解决方案 > 如何修复 Apache 服务器(Windows)中的导入 ssl 错误

问题描述

我正在尝试在Apache服务器上使用mod_wsgi设计带有 Flask 应用程序的 RESTful API ,并且在Apache服务器中导入ssl模块时出现错误。我已经从https://www.apachelounge.com/download/安装了 Apache 2.4 ,并使用 pip 安装了 mod_wsgi,并在 Apache 服务器中对其进行了配置。

我创建了一个简单的 Flask 应用程序:

    from flask import Flask   '
app = Flask(__name__)
    @app.route("/")
    def hello():
        return "Hello World"
    if __name__ == "__main__":
        app.run()

我创建了一个 web.wsgi 文件:

    import sys 
sys.path.insert(0, 'C:/Users/chant/myapp')
from final_app import app as application

并通过在 http-vhosts.conf 中粘贴以下代码,使用它为 Flask App 配置虚拟主机:

<VirtualHost *:5000>
    ServerName  localhost
    WSGIScriptAlias / "C:/Users/chant/myapp/web.wsgi"
    DocumentRoot "C:/Users/chant/myapp"
ErrorLog "C:/Users/chant/myapp/logs/error.log"
    CustomLog "C:/Users/chant/myapp/logs/access.log" common

我的错误日志显示:

    File "c:\\programdata\\anaconda3\\Lib\\ssl.py", line 98, in <module>\r
    import _ssl             # if we can't import it, let the error propagate\r
ImportError: DLL load failed: The specified module could not be found.\r

虽然我尝试测试导入模块并且它在 python 中运行,但它没有在 Apache 服务器中导入。

如果有人有任何建议,将不胜感激。

标签: windowsapachesslflaskmod-wsgi

解决方案


后来我注意到 Flask 应用程序部署的一个重要部分是应该为所有用户安装 Python,否则 Apache 服务器无法导入 ssl 模块。

希望这可以帮助!


推荐阅读