010*_*101 18 python virtualenv flask uwsgi
(关于SO的其他帖子类似,但没有一个具有uwsgi + Flask + virtualenv的特定组合)(这一个是最接近的)
我通过apt-get安装了uwsgi.我也试过pip install wsgi.两个人都给了我同样的问题.
测试命令:
sudo uwsgi -s /tmp/uwsgi.sock -w myapp:app -H myvirtualenv
Run Code Online (Sandbox Code Playgroud)
结果:
Python version: 2.7.4 (default, Apr 19, 2013, 18:35:44) [GCC 4.7.3]
Set PythonHome to myvirtualenv
ImportError: No module named site
Run Code Online (Sandbox Code Playgroud)
我可以在虚拟环境中运行我的应用程序.
JRa*_*jan 23
虚拟环境的路径是错误的.这是这个错误的原因.
我正在使用virtualenvwrapper,我的虚拟环境设置在〜/ .virtualenvs.所以在我的情况下,uwsgi调用看起来像
sudo uwsgi -s /tmp/uwsgi.sock -w myapp:app -H ~/.virtualenvs/myapp
Run Code Online (Sandbox Code Playgroud)
希望这有助于下次有人来寻找这个.
感谢Cody在评论中指出它.
hug*_*hes 21
请先查看@JRajan的答案.
如果您确定只想抑制错误并且实际上没有解决根本问题,请将鼠标悬停在下方.
添加
--no-site到您的命令或no-site=true您的uwsgi.ini文件.
lui*_*lhl 13
在我的情况下,问题是uWSGI试图使用的python版本.
我的项目是用python 3.4编写的,但我没有在uWSGI配置中指定它.所以uWSGI试图使用python 2并尝试从virtualenv中的文件夹lib/python2.7导入模块.
所以我收到了'No module named site'错误,因为所有的模块,包括站点模块,里面的lib/python3.4,而不是lib/python2.7.
为了解决这个问题,我必须做两件事:
安装uWSGI的python3插件,包括:
apt-get install uwsgi-plugin-python3
在.ini配置文件中使用它,包括:
plugins = python34
希望这可以帮助将来遇到同样问题的人.
根据要求,这里是我的.ini文件:
[uwsgi]
base = /your/app/path
pythonpath = %(base)
module = your_module_name
callable = app #Here you put the name of the variable which holds your app inside your module
home = /your/virtualenv/path
plugins = python34
master = true
processes = 2
uid = www-data
gid = www-data
socket = /path/to/socket
chmod-socket = 660
die-on-term = true
logto = /var/log/uwsgi/%n.log
Run Code Online (Sandbox Code Playgroud)
小智 8
我以前遇到过类似的问题.我的问题是我的ubuntu系统上有python2.x和python3.x,我希望我的项目在安装了python3环境的虚拟环境中运行.我是如何解决这个问题的:
apt-get install python3-pip
pip3安装uWSGI
就这样.
| 归档时间: |
|
| 查看次数: |
27976 次 |
| 最近记录: |