【问题标题】:Why can't WSGI configuration file find my Python variable?为什么 WSGI 配置文件找不到我的 Python 变量?
【发布时间】:2018-03-01 17:20:15
【问题描述】:

我正在尝试使用简单的 Python 应用程序设置 PythonAnywhere,但 WSGI 配置似乎无法正确导入,我做错了什么?

#!/usr/bin/python3.6

import web
import urllib
from xml.dom import minidom

... [code] ...

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()
    #app.wsgifunc()

我的WSGI如下

#!/usr/bin/python3.6

import sys

path = "/home/myUsername"
if path not in sys.path:
    sys.path.append(path)

from myPythonFileNameInSameDir import app as application
application.wsgifunc()

【问题讨论】:

  • __name__ 仅在直接执行 python 脚本时才等于“main”。如果您要导入它,那么 __name__ 不是“主要”,因此 app 不存在。

标签: python python-3.x wsgi pythonanywhere


【解决方案1】:

PythonAnywhere dev here -- 当您从 WSGI 文件导入 web.py 应用程序时,它不会运行 if __name__ == "__main__": 部分中的任何内容。

您需要在应用程序中执行此操作:

#!/usr/bin/python3.6

import web
import urllib
from xml.dom import minidom

... [code] ...

app = web.application(urls, globals())

if __name__ == "__main__":
    app.run()

...在 WSGI 文件中:

#!/usr/bin/python3.6

import sys

path = "/home/myUsername"
if path not in sys.path:
    sys.path.append(path)

from myPythonFileNameInSameDir import app
application = app.wsgifunc()

【讨论】:

  • 太棒了!现在一切都说得通了。谢谢
猜你喜欢
  • 2011-06-13
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 2019-01-26
  • 2023-02-04
  • 1970-01-01
  • 2012-02-15
相关资源
最近更新 更多