在监狱里,我已经安装python3.6
了python3.4
.两者都是使用pkg install
,没有端口安装的。我想保留 3.4 版本一段时间,但将 3.6 设置为默认版本。
在网上找到的答案,比如这个或者这个要么涉及到我自己的链接/usr/local/bin/python
(python3.6
默认Python升级后必须再次做什么,我想避免什么;而且无论如何也没有这样的链接);或者设置DEFAULT_VERSIONS
in /etc/make.conf
,什么对二进制文件安装没有影响(不过我已经尝试过了)。
而且,虚拟环境不是一个选项,因为我想运行uwsgi
,所以需要系统范围默认 python 与它“监视”的 python 应用程序(在我的例子中为 Django)的 python 虚拟环境中的 Python 相匹配,以便正确启动。即使我从 Django 的虚拟环境(提供 python3.6)内部开始,uwsgi
也会检测python3.4
为默认的 python 版本。
无法找到是否缺少任何环境变量。
有关信息,请参阅监狱(和虚拟环境)内部:
# printenv
USER=root
LOGNAME=root
HOME=/root
SHELL=/bin/csh
BLOCKSIZE=K
MAIL=/var/mail/root
PATH=/usr/local/venv/dj1/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
TERM=xterm-256color
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=1
PWD=/var/log
GROUP=wheel
HOST=dev_web0
EDITOR=vi
LANG=fr_FR.UTF-8
MM_CHARSET=UTF-8
PAGER=more
VIRTUAL_ENV=/usr/local/venv/dj1
答案1
所有二进制文件都是使用默认设置预先构建的,当前默认的 Python 是 3.6。
为了实现您的目标,您可以将所需的 Python 版本安装为二进制文件,然后将其设置DEFAULT_VERSIONS
为/etc/make.conf
,然后uwsgi
使用该版本从端口进行安装。我以自动方式执行此过程,Python3.7
这不是默认的 ATM。
或者,您可以测试您的应用程序是否可以正常工作Python 3.6
(如果有的话,升级到您的代码应该是最少的)并继续使用默认二进制文件。