【问题标题】:Heroku not working for Node.js file with python scriptsHeroku 不适用于带有 python 脚本的 Node.js 文件
【发布时间】:2020-10-01 22:15:23
【问题描述】:

我在 node.js 中创建了一个网站,我使用子进程来运行 python 脚本并在我的网站中使用它们的结果。但是当我在 heroku 上托管我的应用程序时,heroku 无法运行 python 脚本。

我注意到 heroku 能够运行只有内置 python 包(如 sys、json)的 python 脚本,但对于使用外部包(如 requests、beautifulsoup)的脚本却失败了。

尝试 1 我在项目文件夹中创建了一个 requirements.txt 文件,然后再次将我的代码推送到 heroku。但它仍然无法正常工作。我注意到 heroku 仅将 requirements.txt 文件用于基于 python 的 Web 应用程序,而不用于 node.js 应用程序。

尝试 2 我在项目文件夹中创建了一个 python 虚拟环境,并将所需的 python 包导入到 venv 中。然后我从 venv 中删除了 gitignore 并将整个 venv 文件夹推送到 heroku。还是不行。

如果有人遇到这种情况,请告诉我。

【问题讨论】:

    标签: python node.js heroku web-applications


    【解决方案1】:

    您可以使用Procfile 指定命令来安装python 依赖项然后启动服务器。

    过程文件:

    web: pip install -r requirements.txt && npm start
    

    Procfile 放在项目的根目录中并部署到heroku。

    【讨论】:

    • 它对我不起作用。但是在 heroku 的设置中添加 python 作为构建包就可以了。
    【解决方案2】:

    解决方案:

    在您的项目文件夹中有一个 requirements.txt 文件。

    使用“heroku create”创建 heroku 应用程序后,heroku 会将您的应用程序识别为基于 python 的应用程序,并且不会下载任何节点依赖项。

    现在,转到您的 heroku 个人资料并转到您的应用设置。那里有一个名为“Add Buildpack”的选项。单击它并将 node.js 添加为构建包之一。

    返回您的项目并将其推送到 heroku。这次 heroku 会将您的应用程序识别为基于 python 和 node.js 的应用程序,并将下载所有必需的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 2020-09-15
      • 2021-09-15
      相关资源
      最近更新 更多