我有一台安装了 FreeBSD 10.1 的服务器。我想使用 uwsgi+nginx+python3 在其上部署 Django 站点,但遇到了一些问题。
该网站是为 python3 编写的,我安装了 python3.4,然后从 ports 安装了 python3 和 python,配置了 nginx 并编写了 uwsgi ini 文件和 sock 文件。然后我尝试启动该项目。它在 virtualenv 中完美运行。
然后我使用 pip3 全局安装了 uwsgi。但是当我尝试在全球范围内启动该项目时,我收到错误
no module named site
这意味着 uwsgi 使用 python2 而不是 3。我试图解决这个问题:
- 在 make.conf 中设置 DEFAULT_VERSIONS=python=3.4;
- 将 $PYTHONHOME 和 $PYTHONPATH 设置为 /usr/local/bin/python3;
- 将链接 /usr/local/bin/python 从 python2 更改为 python3;
这没有帮助。如何强制uwsgi使用python3而不是python2?
答案1
设置时
DEFAULT_VERSIONS=python=3.5 python2=2.7 python3=3.5
您/etc/make.conf
必须重建使用默认版本的 Python 的端口。
答案2
您可以virtualenv
在一台服务器上处理不同的 Python 版本,并根据需要使用完全独立的 Python 安装。