我目前正在开发我的第一个真正的python flask项目,并准备设置构建服务器来部署“最新构建”,它构建在每个签入上。
我已经设置了一个启动脚本,在这里我使用uwsgi启动应用程序,这部分工作正常。我最近也开始使用virtualenv
,通过这样做,安装的包被添加到我的项目的projectname\flask\Lib\site-packages
下。
我使用nginx
作为web服务器,配置如下:
location / { try_files $uri @graderbuild; }
location @graderbuild {
include uwsgi_params;
uwsgi_param UWSGI_CHDIR /usr/local/grader/build;
uwsgi_param UWSGI_PYHOME /usr/local/grader/build;
uwsgi_pass 127.0.0.1:3031;
}
我开始使用这个:
exec /usr/local/bin/uwsgi --master --socket 127.0.0.1:3031
--wsgi-file restserver.py --callable app --processes 4 --die-on-term
--threads 2 >> /var/log/grader-build.log 2>&1
现在我知道如果我做得对。。。目前我正在将整个文件夹部署到生成服务器。我不想安装全局python模块只是为了让构建工作。对还是错?
我当前得到的错误是:
ImportError: No module named flask_wtf
如果我是对的,如何配置安装程序以使用virtualenv
站点包?我的首选位置应该在startup
脚本中,而不是nginx
配置中。
使用
-H
将virtualenv设置为python路径。http://uwsgi-docs.readthedocs.org/en/latest/Options.html#virtualenv
作为user995394 pointed输出,有一种方法可以告诉uWSGI使用现有的虚拟环境。 然而,当我以
virtualenv = /full/path/to/my/virtualenv
(来自in I config)的形式传递uWSGI选项时,它会抱怨ImportError: No module named site
。我发现的解决方法是从virtualenv所在的文件夹启动uWSGI,然后只传递virtualenv = my_virtualenv_name
(即路径是相对的)。我使用uWSGI 2.0。
要使用激活的virtualenv,可以在
uwsgi.ini
中使用此配置片段:相关问题 更多 >
编程相关推荐