目前场景是这样的:
服务需要部署在物理机上(不希望服务进容器,这个是客观限制没法变动)
物理机均为较旧版本的 Ubuntu Server (比如 14.04 、16.04 ,可以尝试用过 deadsnake 的 ppa 里的包,是可以正常部署的)
不能对原有的 python 环境产生破坏性,必须独立于原有的 python 环境( Ubuntu 系统工具中存在一些依赖自带 python2 、3 的工具,尝试过强制更新,会造成一些无法预料的问题)
pip 需要独立出来 (python3.4 、3.5 能用的 pip 版本的 setuptools 不兼容较新的包,使用 Pipenv 进行包管理)
项目使用的特性至少需要依赖于 python3.7 以上(需要用些 asyncio 的新功能),之前尝试在 14.04 3.4 的环境下使用 pipenv ( 16.04 可以正常用 pipenv ),均会有至少 python3.5 的版本要求限制,所以需要一套完全独立于系统的 python 和 pip 环境。
项目的开发环境都是使用 pipenv+pyenv 进行多版本、pip 隔离的,所以希望尽量可以在线上使用 pipenv 。
目前初步想法是编好一套完全独立于系统的 python 环境丢在专门的目录下,然后写一个独立的环境变量文件,启动使用 shell 脚本启动(这样内部运行时会携带进去专用指向的 python 环境参数),不知道这样是否可行?或者大家有什么更好的办法吗?
服务需要部署在物理机上(不希望服务进容器,这个是客观限制没法变动)
物理机均为较旧版本的 Ubuntu Server (比如 14.04 、16.04 ,可以尝试用过 deadsnake 的 ppa 里的包,是可以正常部署的)
不能对原有的 python 环境产生破坏性,必须独立于原有的 python 环境( Ubuntu 系统工具中存在一些依赖自带 python2 、3 的工具,尝试过强制更新,会造成一些无法预料的问题)
pip 需要独立出来 (python3.4 、3.5 能用的 pip 版本的 setuptools 不兼容较新的包,使用 Pipenv 进行包管理)
项目使用的特性至少需要依赖于 python3.7 以上(需要用些 asyncio 的新功能),之前尝试在 14.04 3.4 的环境下使用 pipenv ( 16.04 可以正常用 pipenv ),均会有至少 python3.5 的版本要求限制,所以需要一套完全独立于系统的 python 和 pip 环境。
项目的开发环境都是使用 pipenv+pyenv 进行多版本、pip 隔离的,所以希望尽量可以在线上使用 pipenv 。
目前初步想法是编好一套完全独立于系统的 python 环境丢在专门的目录下,然后写一个独立的环境变量文件,启动使用 shell 脚本启动(这样内部运行时会携带进去专用指向的 python 环境参数),不知道这样是否可行?或者大家有什么更好的办法吗?
