当前位置: 首页 > 知识库问答 >
问题:

mod_wsgi与烧瓶应用程序:重要错误:没有模块命名烧瓶

牛骞仕
2023-03-14

在CentOS 6.4中,我在/var/www/html/venv文件夹中创建了python虚拟环境。然后在激活虚拟环境后,我为我的flask应用程序安装了所有必要的python库。我检查了一下,Flask库位于/var/www/html/venv/lib/python2.7/site-packages文件夹中。我已经安装并加载了mod_wsgi。现在,在我的flask应用程序中(位于/var/www/html/truckman/wsgi文件夹中),我创建了truckman。包含以下内容的wsgi文件:

activate_this = '/var/www/html/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

import sys
sys.path.insert(0, '/var/www/html/truckman/wsgi/')

from app import app as application
import config
application.config.from_object(config.Dev)

此外,在/etc/httpd/conf/httpd中。形态一新增:

<VirtualHost *>
    WSGIScriptAlias / /var/www/html/truckman/wsgi/truckman.wsgi
    <Directory /var/www/html/truckman/wsgi>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

现在,在/var/www/html/truckman/wsgi文件夹中,我创建了run。包含以下内容的py文件:

from app import app as application
import config
application.config.from_object(config.Dev)
if __name__ == "__main__":
    application.run(port=5001)

现在我用flask的开发服务器测试了我的应用程序;如果我执行“python run.py”,我的应用程序就会按预期工作。我可以浏览到localhost:5001,应用程序的初始页面就会显示出来。

然后我用mod_wsgi测试了我的应用程序:First killed run。py进程,并重新启动httpd服务,然后浏览到localhost;但它返回:“500内部服务器错误”。在/etc/httpd/logs/error\u日志文件中,我发现了以下错误消息:“ImportError:没有名为flask的模块”。我的设置有什么问题?

共有2个答案

宦琪
2023-03-14

这个conf应该是这样的:

<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias / /var/www/firstapp/hello.wsgi
    WSGIDaemonProcess hello python-path=/var/www/firstapp:/var/www/firstapp/env/lib/python2.7/site-packages
    <Directory /var/www/firstapp>
       WSGIProcessGroup hello
       WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

最好在etc/apache2/sites available/hello中。conf,所以这部分可能是问题的根源。

您可以在:flask中的Hello world中查看工作示例代码。

司徒志强
2023-03-14

尝试在虚拟环境中添加python 2.7文件夹的路径。

sys.path.insert(1, '/path/to/virtualenv/lib/python2.7')
 类似资料:
  • 我在这里遵循烧瓶教程: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world 我达到了我尝试的程度/跑py和我得到: 这看起来类似于: ImportError:没有名为flask的模块 但他们的解决方案没有帮助。作为参考,我确实有一个名为flask的文件夹,其中一位用户提到该文件夹可能会导致问题

  • 我一直想弄明白这个问题,但弄不明白。我的应用程序结构如下: 我为beanstalk提供了Python2.7环境,为我的虚拟环境提供了同样的环境。我在pip列表和要求中有所有需要的包。txt。eb config中yml文件中的我的WSGI路径设置为/myapp/application。皮耶。我从eb日志中得到的确切错误是: mod_wsgi(pid=2330):目标WSGI脚本'/opt/pytho

  • 我正在尝试使用mod_wsgi在Ubuntu 16.04上通过apache安装flask应用程序。问题是wsgi脚本无法导入任何python模块。 我已经验证了wsgi脚本是可执行的,并用python独立运行了它。我还验证了我的flask应用程序可以自己运行,没有错误。我能够在我运行的任何其他python程序中导入所有模块。我还安装了带有pip和源代码的烧瓶。似乎什么都没用。 这是我的错误日志:

  • 我试图在python中构建一个可以从XAMPP的Apache运行的应用程序,因此我安装了flask(),并按照以下说明进行mod_wsgi安装http://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html.我使用XAMPP的Apache,版本2.4.29和anaconda的python 3.6.4

  • 谢谢你的回应。 向Joern问好

  • 我有一个基本的“hello world”烧瓶应用程序正在运行。 我在Ubuntu 14.04上,使用Apache 2.4。我安装了mod_wsgi。 我创建了一个~/web/piFlask/venv/来保存一个安装了flask的virtualenv创建的Python2。 但是,我希望我的flaskapp导入我编写的Python3. x模块。 我需要做什么才能做到这一点? 我试着创建一个