如何解决激活python venv的激活activate_this.py不会起作用或抛出错误
Soo,我创建了一个小的Flask网站,希望将其与Apache 2.4一起部署在Debian 10服务器上
首先,我遵循tutorial并创建了apache2 conf文件和.wsgi文件。由于此方法无法正常运行,因此出现错误“ ModuleNotFoundError:没有名为'flask'的模块”,因此我使用
设置了虚拟环境python3 -m venv venv
并将我的.wsgi更改为
#!/usr/bin/python3
import sys
import logging
activate_this = '/home/bot/Club-Manager/Webinterface/venv/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_.read(),dict(__file__=activate_this))
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/home/bot/Club-Manager/Webinterface/")
import app as application
现在我得到
Failed to exec Python script file '/var/www/html/Webinterface/Webinterface.wsgi'
Exception occurred processing WSGI script '/var/www/html/Webinterface/Webinterface.wsgi'.,file "/var/www/html/Webinterface/Webinterface.wsgi",line 8,in <module>,exec(file_.read(),dict(__file__=activate_this))
File "<string>",line 28,in <module>
AttributeError: 'str' object has no attribute 'decode'
起初我不存在“ activate_this.py”,一些研究告诉我可以从我尝试过的lib / virtualenv文件夹中复制它(venv中的一个,〜/ .local /中的一个) )。 经过更多研究后,我发现您应该使用与运行venv相同的python版本创建venv,我检查并使用python3而不是仅仅用python创建了venv,因为python3和python2已安装(甚至如果“ python”将我带到python 3.7,但/ usr / bin / python是python 2)。 我还尝试了venv / lib / virtualenv中的“ activator.py”文件,但这也没有用(确实可以,但是也抛出了烧瓶未找到错误)
我检查并重新安装了venv中的依赖项,我检查了它们是否已为python3安装。
所以现在我很失落,我猜问题出在“ activate_this.py”文件,但是我不知道该如何获得功能性文件,否则还会导致此中断。将我的请求从域转发到python脚本的“ Apache2部分”似乎有效(好吧,我想是因为为什么我还能看到错误),所以我没有附加apache conf,但是如果需要,我可以将其发布。我还检查了文件夹的权限,/ var / www / html / Webinterface是到/ home / bot / Club-Manager / Webinterface的符号链接,并且所有这些都得到了bot:www-data,这是用户和组apache2应该使用的
感谢任何提前提示
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。