如何在 Heroku 服务器上安装自定义 Python 包(boto)

Posted

技术标签:

【中文标题】如何在 Heroku 服务器上安装自定义 Python 包(boto)【英文标题】:How to install custom Python package (boto) on Heroku server 【发布时间】:2015-07-11 17:23:55 【问题描述】:

我目前使用 Heroku 来托管我的 Python/Django 服务器,并使用 Amazon S3 来处理我的资源。 我已经将我的 Python 版本从 2.7.6 升级到 2.7.9,现在遇到了一个新问题:我的 S3 存储桶名称包含“.”。 (点),这会导致 boto 出现问题(我以前的 python 版本没有这个问题)。 我在网上找到了如何解决这个问题:修改 boto 中的一个文件。我已经做到了,它在我的本地运行良好。 (该解决方案的链接:https://github.com/boto/boto/issues/2836)

现在,我需要将新的自定义版本的 boto 安装到我的 Heroku 服务器上。因此,我创建了一个文件夹来在我的应用程序中托管我的自定义 boto(使用 setup.py),当我将 pip install -r requirements.txt 用于我的虚拟环境时,一切正常(requirements.txt 包含我的应用程序需要的所有依赖项)跑步)。在 requirements.txt 中,我现在使用 -e ./customPythonPackages/boto 而不是简单的 boto

但是,当我尝试使用完全相同的 requirements.txt 推送 Heroku 时,我收到以下错误:

error: package directory 'boto/sdb' does not exist

我真的不知道当时出了什么问题。根据 pip 和 Heroku (https://devcenter.heroku.com/articles/python-pip),我对我的 requirements.txt 文件的语法进行了三次检查。

有人知道如何解决这个问题吗?

P.S.:我不想改变我的 S3...

谢谢!

【问题讨论】:

【参考方案1】:

不要尝试在 Heroku 上安装自定义 boto,只需将自定义 boto 文件夹放在项目目录中(与项目应用处于同一级别)。

【讨论】:

感谢您的回答!这很好地解决了我的问题,但我认为我在创建自己的包时实际上没有做正确的事情。我在那里(docs.pythonboto.org/en/latest/boto_config_tut.html)找到了我认为正确的方法,使用配置文件。我不确定将配置文件放在哪里才能充分利用它...例如,如果我的应用程序名为“my_app”,我应该将配置文件放在哪里?最后,由于我是这里的新手,因此我无法投票赞成您的答案... :) 您应该能够通过单击向上箭头正上方的复选标记来“接受”答案,而不是投票。至于配置文件,根据文档,您似乎可以创建一个 .boto 文件夹并将配置文件放在那里。不过,作为一个单独的问题,这可能会更好。如果您正在自定义 boto 应用程序,我会使用答案中提到的解决方案。

以上是关于如何在 Heroku 服务器上安装自定义 Python 包(boto)的主要内容,如果未能解决你的问题,请参考以下文章

如何为以下设置安装 SSL(React 前端 + Nodejs 后端 + 自定义域 Heroku)

Heroku + Rails:如何允许我的用户添加他们自己的自定义域

如何在heroku服务器上安装red5

text 从自定义Github repo安装Heroku依赖项

Heroku Websocket到自定义域

部署到 Heroku 时,如何在 Procfile 中导入带有 Gunicorn 的自定义模块?