@
gouchaoer 可能你对 python 不大熟悉吧。 python 的包管理器叫 pip ,而且已经被官方收编了, python3 还搞了个 ensurepip 来保证 pip 的自举。 pip 是可以把库安装到每个账号自己的目录下的,是 system 还是 home 由用户自己决定。
之前有人搞了个 virtualenv ,可以为每个 python 的 app 定制一个与众不同的运行时环境,相互之间是隔离的。官方吸收了这套理念,推出了 venv ,不过只有 python3 才有, python2 还是得继续用 virtualenv 。
venv 和 pip 是可以搭配一起使用的,很容易就能把 python app 的所有依赖打包到一起。不过要说不熟简单, php 和 python 都比不了 Java 和 go 语言,一个二进制包搞定, Java 只依赖 JRE , go 只依赖内核。因为 Java 和 go 的 library 都倾向于 pure java/go 实现,不像 php/python 那样 wrap 一个 C 的库,搞的对 so/dll 有依赖,这里就涉及到不同发行版和版本的依赖问题了。不过现在有了 docker ,打包可以连系统级别的依赖一起打,用主流语言的部署都不会太麻烦了。
lua 在 web 也是有实际应用的,比如说 openwrt 的 web 界面就是 lua 实现的。我司部分功能是用 nginx+lua 的实现的,这部分功能,如果换成 php ,除了 swoole ,可能没有第二个框架能扛得住。 nginx+lua 这种搭配,应该不算太过罕见吧。
go 是主打的是 web 服务,他 release 的时期,服务端页面渲染已经不重要了,所以他没有好用的模板。而 url 路由和 db 或者 cache 方面, go 的库并不差。至于 swoole ,我们公司很多项目都是 swoole ,我估计我熟悉程度不比你低多少, swoole 项目本身就是我们公司的天峰维护的。