美文网首页
【Flask】使用mod-wsgi时报错 deactivate

【Flask】使用mod-wsgi时报错 deactivate

作者: 李庆文 | 来源:发表于2019-10-04 15:37 被阅读0次

    在flask+mod-wsgi+httpd构造高并发的环境的时候,报如下错误。

    一. 报错信息如下

    [wsgi:error] [pid 28427:tid 140540431517440] mod_wsgi (pid=28427): Target WSGI script '/var/www/myapp.domain.com/myapp.wsgi' cannot be loaded as Python module.
    [wsgi:error] [pid 28427:tid 140540431517440] mod_wsgi (pid=28427): Exception occurred processing WSGI script '/var/www/myapp.domain.com/myapp.wsgi'.
    [wsgi:error] [pid 28427:tid 140540431517440] Traceback (most recent call last):
    [wsgi:error] [pid 28427:tid 140540431517440]   File "/var/www/myapp.domain.com/myapp.wsgi", line 5, in <module>
    [wsgi:error] [pid 28427:tid 140540431517440]     exec(file_.read(), dict(__file__=activate_this))
    [wsgi:error] [pid 28427:tid 140540431517440]   File "<string>", line 4
    [wsgi:error] [pid 28427:tid 140540431517440]     deactivate () {
    [wsgi:error] [pid 28427:tid 140540431517440]                   ^
    [wsgi:error] [pid 28427:tid 140540431517440] SyntaxError: invalid syntax
    

    二. 问题原因

    1. 个人解释

    python3自带的创建虚拟环境的venv/bin目录下没有activate_this.py这个激活文件,而这个激活文件在编写myapp.wsgi的时候需要在开头就要使用这个python文件来激活对应的python虚拟环境。

    2. 官方解释

    官方解释

    三. 解决措施

    更换虚拟环境,用virtualenv来建立虚拟环境,而不是使用python3自带的命令来构造虚拟环境
    1.安装virtualenv

    pip3 install virtualenv
    
    1. 删掉原来的venv
    rm -rf venv
    
    1. 重新建立虚拟环境
    virtualenv venv
    
    1. 激活环境
    source venv/bin/active
    
    1. 重新安装所需要的各种依赖,比如下面这些
    pip3 install Flask
    pip3 install mod_wsgi
    pip3 install flask-sqlalchemy 
    pip3 install mysqlclient
    
    1. 更新mapp.wsgi
    activate_this = '/path/to/yout/app/venv/bin/activate_this.py'
    with open(activate_this) as file_:
        exec(file_.read(), dict(__file__=activate_this))
    import sys
    sys.path.insert(0, "/path/to/your/app")
    from mapp import app as application
    

    其他的按照原来的环境进行配置即可,然后重新运行,应该就没有这个问题啦。

    1. 当激活环境不需要使用的时候,可以关闭激活
    deactivate
    

    综上,大家加油~~

    相关文章

      网友评论

          本文标题:【Flask】使用mod-wsgi时报错 deactivate

          本文链接:https://www.haomeiwen.com/subject/cvhspctx.html