使用 nginx 运行 Pyinstaller Django 应用程序

duc*_*uck 5 python django nginx pyinstaller uwsgi

我已经使用 pyinstaller 打包了一个 django 应用程序

python pyinstaller.py --name=executablename Tool/manage.py
Run Code Online (Sandbox Code Playgroud)

问题是默认服务器是单线程的,无法处理太多负载。

因此,我想使用带有我打包的 django 可执行文件的标准服务器。我有两种选择可以使用

1. Apache
2. Nginx with uwsgi
Run Code Online (Sandbox Code Playgroud)

我可以用代码轻松设置它们,但问题与打包的应用程序有关。这里两个服务器都需要一个 wsgi 文件,该文件通常存在于 Tool\wsgi.py 中,但由于这是一个打包的应用程序,因此不存在 wsgi.py,因此无法连接两个服务器。

有谁知道实现这一目标的方法。我知道建议的方法是使用源代码,但我真的不想在 python 文件中分发我的源代码。

Gra*_*ton -1

如果使用 uWSGI,有一个命令行选项允许您说您正在为其提供模块路径而不是文件路径。对于使用 mod_wsgi 或 uWSGI 默认值的标准 Apache,您可以创建一个 WSGI 脚本文件,该文件通过其路径将 WSGI 应用程序从模块导入到 WSGI 脚本文件中,然后引用该 WSGI 脚本文件。如果使用 mod_wsgi-express,那么它有一个像 uWSGI 这样的选项,它允许你说你正在为其提供模块路径。

  • 问题在于 pyinstaller 没有模块路径,所有内容都在 exe 内。只是一个包含所有代码的大exe (3认同)