Python 仅用于 FTP 虚拟主机

Python for FTP-only webhosting

我想开发一个 Python 网络应用程序并将其部署到一些共享的虚拟主机上。重点是,只能通过 FTP 访问,因此无法通过 运行ning pipenvvirtualenv 进入它。

更复杂的是,他们 运行 比我命令的 Python 更旧的版本(3.5 对 3.8)

如何创建和打包包含依赖项的 Python 应用程序?

奖金问题:运行时间模型只是 CGI,因此需要从 CGI 脚本中激活环境。

从奖金问题开始:

pyenv 允许在当前环境旁边安装(几乎)任意 python 版本。 通过

安装 pyenv
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

激活方式

export PATH=$HOME/.pyenv/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Install Python 3.5.3

$ pyenv install 3.5.3
Downloading Python-3.5.3.tar.xz...
-> https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tar.xz
Installing Python-3.5.3...
Installed Python-3.5.3 to /home/snakebite/.pyenv/versions/3.5.3

并激活

export PYENV_VERSION=3.5.3

为 CGI 部署打包

之前对python包装不是很了解,总感觉一头雾水。这可能是有原因的……好的读物是

PEX 是一种将 python 脚本及其所有依赖项作为 ZIP 文件打包和分发在一种可由 python 解释器执行的虚拟环境中的方法。推特大学非常推荐的介绍视频:WTF is PEX?

该应用程序直接从 ZIP 运行 中提取,仅将标记为不安全的库解压缩 运行 将 ZIP 解压缩到缓存目录(默认为 ~/.pex),保持对性能的影响。 shiv 声称速度更快。