【问题标题】:Python for FTP-only webhosting用于仅 FTP 虚拟主机的 Python
【发布时间】:2020-04-10 17:51:20
【问题描述】:

我想开发一个 Python 网络应用程序并将其部署到一些共享网络托管。关键是,只有通过 FTP 才能访问,因此无法通过 ssh 进入并运行 pipenvvirtualenv

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

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

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

【问题讨论】:

  • 最好的办法是使用更好的主机。

标签: python deployment web-hosting packaging


【解决方案1】:

从奖金问题开始:

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 声称更快。

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 2018-03-23
    • 2020-09-01
    • 2021-09-06
    • 2018-04-12
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多