没有 pip 的 Python/Flask 部署

标签 python deployment flask web-deployment

我通常使用一个相当简单的 fabric 脚本部署我的 Flask 应用程序,该脚本将源代码放在目标机器上,使用 pip 安装任何依赖项,然后使用所有必要的设置启动 uwsgi,然后就可以了。

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

有没有办法获得一个完整编译的包,其中包含依赖项以及我可以用来部署到我的服务器的所有内容?是否有一些我可以使用的 sdist 设置?

最佳答案

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

# 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

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

关于没有 pip 的 Python/Flask 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30759264/

相关文章:

asp.net-mvc - 如何在 IIS 5.1 上部署 MVC 应用程序?

python - Heroku 新手 - "No such type as web"

python - 取带有掩码元素的 numpy ndarray 的平均值

python - 如何优化这段代码以进行 nn 预测?

python - numpy ediff1d 和 diff 之间的区别

python - 如何舍入 pandas Float64Index?

javascript - 在自定义域上部署 React App 时出现 404 错误

deployment - web.xml 和相对路径

python - 无法在Windows上的Docker上连接到Flask App

python - 使用 Eve 提供静态文件