以下代码位于名为findUserByEmail(String email)
的uWSGI配置文件中:
flask1.ini
生产服务器在[uwsgi]
socket = /tmp/flask1.sock
chmod-socket = 777
evn = PRODUCTION=TRUE
module = indy
callable = app
processes = 4
threads = 2
logto = /var/indylog
上使用ubuntu 14.04
设置,uWSGI
用于nginx
应用。
我编写了一个使用Flask
的新模块,它在我的本地Python 2.7
virtualenv(Flask开发服务器)和同一ubuntu 14.04
和nginx
集上运行时没有任何错误作为生产环境。但是,当我在生产服务器上部署相同的代码时,它会提供一堆uWSGI
,我试图弄清楚为什么会这样。
我在本地桌面和生产服务器上运行syntax errors
,它们都是python --version
。
我的问题:在生产服务器上使用上面的uWSGI配置,Python 2.7.6
正在使用?机器Python
或Python
?
答案 0 :(得分:1)
确切地说,两者都没有。 uwsgi实际上并不运行Python二进制文件,而是直接使用libpython。它只是跟随你的系统LD_LIBRARY_PATH
找到相应的libpython库,这通常不受virtualenv的影响。
受virtualenv影响的是,uwsgi将加载您的软件包的位置。您仍然需要在uwsgi.ini
中添加一行来指定您的virtualenv这样的路径:
virtualenv = /path/to/your/virtualenv
如果您希望将uwsgi配置为使用不同版本的libpython,则需要为每个版本构建相应的插件,并在uwsgi.ini
中指定它。您可以找到有关此here
答案 1 :(得分:1)
首先,您必须为源代码创建Python 3环境:
virtualenv -p /usr/bin/python3 path_to_your_project/env
并安装所需的数据包:
cd path_to_your_project
source env/bin/activate
# you can use pip to install packets required, e.g:
pip install -r requirements.txt
最后,将virtualenv添加到您的uwsgi.ini文件中:
virtualenv = path_to_your_project/env
答案 2 :(得分:0)
在virtualenv中安装uwsgi以使用env配置的任何Python版本。 /path/to/env/bin/uwsgi --ini /path/to/flask.ini
。而不是全局uwsgi path/to/your/flask.ini
,它将使用系统安装的Python版本。