gpt4 book ai didi

python - 如何正确添加wsgi的路径?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:03 25 4
gpt4 key购买 nike

我有一个用 python 编写的网络应用程序,要在 public_html 上部署和使用它,我有一个简短的 Main.wsgi,其中包含以下内容:

#!/usr/bin/python
# -*- encoding: utf-8 -*
import sys, os
from werkzeug.wrappers import Request
from PageManager import PageManager
import werkzeug.contrib.sessions as sessions

fsstore = sessions.FilesystemSessionStore()

sys.path.append(os.path.dirname(__file__))
os.chdir(os.path.dirname(__file__))

@Request.application
def app(request):
pm = PageManager()
session = request.environ["werkzeug.session"]
return pm.processPage(request)

#application = app
application=sessions.SessionMiddleware(app,fsstore)

if __name__ == "__main__":
from werkzeug.serving import run_simple
run_simple("localhost", 8080, application,
use_reloader=False, use_debugger=True)

现在的问题是,当我尝试导航到这个 .wsgi 时,我收到以下错误:

ImportError: No module named PageManager

这是文件夹结构

WebApp_1/
├── aufg1
│ ├── ...
├── aufg2
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── Main.py
│ ├── Main.pyc
│ ├── PageRenderer.py
│ ├── PageRenderer.pyc
│ ├── SQLSecurity.pyc
│ └── Testing.py
├── GeneralTools
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── Main.wsgi
│ ├── PageManager.py
│ ├── PageManager.pyc

最佳答案

您应该将您的应用程序打包到一个包中。这样层次结构看起来类似于:

webapp1
|
+---- __init__.py
|
+---- aufg1 (python package)
| |
| +-- ...
+---- aufg2
| |
| +-- __init__.py
| +-- all your other modules.py
+---- generaltooks
|
+-- ...

您还应该改掉使用 CamelCasing 命名包和模块的习惯。相反,将它们转换为小写 - generictools、pagemanager 等。

接下来,像这样更新您的导入:

import sys, os
from werkzeug.wrappers import Request
from webapp1.generaltools.pagemanager import PageManager
# If you do not rename your modules to lowercase, then use this import
# instead of the one above.
from WebApp_1.GeneralTools.PageManager import PageManager
import werkzeug.contrib.sessions as sessions

然后运行您的脚本。您需要位于包 webapp1 之上的目录(以便能够导入 webapp1)。

关于python - 如何正确添加wsgi的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com