使用Anaconda部署到Heroku

时间:2014-07-04 02:17:02

标签: django heroku virtualenv anaconda

我想要部署到Heroku的Django应用程序。我尝试按照此处的说明操作:https://devcenter.heroku.com/articles/getting-started-with-django 它告诉你使用虚拟环境。

但是,我使用的是Anaconda,它不能与虚拟环境很好地配合使用。有没有人将Anaconda的Django应用程序部署到Heroku并引导我完成这些步骤?

3 个答案:

答案 0 :(得分:7)

我也有这个问题。 我想部署一个使用numpy,sckit-learn和其他一些conda包的django应用程序。 我使用了conda-buildpack,但是从django内部无法访问已安装的软件包。所以我创建了一个扩展PYTHONPATH的fork并删除了使用pip install -r requirements.txt安装依赖项的部分,因为这部分与heroku上的 memcached冲突了。 现在我有一个multiple buildpack setup 使用默认heroku python buildpackmy custom condas buildpack fork requirements.txt由python buildpack处理,conda-requirements.txt由conda buildpack处理。对我来说就像是一种魅力。

答案 1 :(得分:0)

如果您处于conda环境中,则使用以下步骤可能有助于将Django应用程序部署到Heroku:

在部署之前,请对项目进行以下四个更改,以便可以使用Heroku在线进行部署:

  1. 安装type Types = ConstructComponentProps["type"]; // type Types = "Functional Component 1" | "Functional Component 2" 作为您的网络服务器。 (由于您使用的是conda环境gunicorn当前无法在任何conda渠道上安装。因此,请使用gunicorn
  2. pip install gunicorn文件添加到项目的基本目录中,并在其中添加模块名称及其版本,或仅复制运行requirements.txt命令后获得的内容。
  3. 创建一个新文件:pip freeze并在其中添加以下内容:

    web:gunicorn [Project_name] .wsgi --log-file-

    Procfile是您自己项目的目录名称)

    这表示要使用现有的[Project_name] .wsgi文件,但要使用gunicorn。

  4. 仅对[Project_name]文件进行一次更改:

    ALLOWED_HOSTS = ['*']

    (通配符星号*表示所有域都可以保持简单。)

现在您终于可以使用以下步骤进行部署:

  • 在Heroku上创建一个新应用: 在CLI上,输入settings.py

    (Heroku将为您的应用创建一个随机名称; [您的应用名称])

  • 为Heroku添加git远程“钩子”:

    heroku git:remote -a [您的应用名称]

  • 忽略静态文件:

    heroku config:set DISABLE_COLLECTSTATIC = 1

  • 将我们的代码推送到Heroku:

    git push heroku master

  • 最后,启用您的Heroku应用:

    heroku ps:scale web = 1

(这里是heroku create的基本Heroku服务)

要打开您的应用,请执行以下操作:web=1

您的应用现在应该可以在Heroku上运行了

答案 2 :(得分:0)

我能够使用Firebolt的方法进行部署,并进行以下修改:

在第2步:将Requirements.txt文件添加到项目基本目录时,如果要复制pip Frozen命令的内容,则必须用软件包的版本替换对文件路径的所有引用。 / p>

示例:将“ asgiref @ file:/// tmp / build / 80754af9 / asgiref_1602513567813 / work”替换为“ asgiref == 3.3.0”。

为了检查要安装哪个版本的软件包:

  1. 运行命令“ conda env export> environment.yml”,
  2. 打开environment.yml,然后
  3. 在列表中查找与所涉及的软件包相对应的版本