如何更改 FreeBSD 监狱中的默认(二进制)python 版本?

如何更改 FreeBSD 监狱中的默认(二进制)python 版本?

在监狱里,我已经安装python3.6python3.4.两者都是使用pkg install,没有端口安装的。我想保留 3.4 版本一段时间,但将 3.6 设置为默认版本。

在网上找到的答案,比如这个或者这个要么涉及到我自己的链接/usr/local/bin/pythonpython3.6默认Python升级后必须再次做什么,我想避免什么;而且无论如何也没有这样的链接);或者设置DEFAULT_VERSIONSin /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(如果有的话,升级到您的代码应该是最少的)并继续使用默认二进制文件。

相关内容