没有pip的Python/Flask部署

Thr*_*ion 5 python deployment web-deployment flask

我通常使用一个相当简单的结构脚本来部署我的Flask应用程序,该脚本将源放在目标机器上,使用pip来安装任何依赖项,然后使用所有必要的设置启动uwsgi并关闭它.

但是,我有一个新问题,即我们环境中的一些新安全设置阻止我们访问网络外部,因此尝试使用pip来安装我们的依赖项失败.我考虑使用python setup.py sdist创建一个包,认为这将在开发人员机器上构建所有内容,然后我可以将.tar.gz上传到部署机器并安装它,但它仍然试图联系pip以获取依赖项.

有没有办法获得一个完整编译的包依赖项和我可以用来部署到我的服务器的所有东西?sdist我可以使用一些设置吗?

joe*_*ker 3

假设您的构建机器与目标二进制兼容,或者您​​不需要任何编译的扩展,您可以使用pip wheel将项目及其所有依赖项编译到wheels,将这些文件复制到服务器,并且pip install仅从wheel目录复制。

# on build machine
cd myproject
pip wheel --wheel-dir wheelbase .
scp -r wheelbase me@target.example.org

# on target machine
pip install --no-index --find-links=wheelbase myproject
Run Code Online (Sandbox Code Playgroud)

您也应该能够将奇数 sdist 复制到 --find-links 目录中,在这种情况下,如果您必须在服务器上重新编译,pip 将从 sdist 安装。