heroku/python node.js 应用程序的 buildpack 被拒绝

heroku/python buildpack for node.js app get rejected

我有一个 Node.js 应用程序,其中包含 Python 个脚本,我正在尝试将其部署到 Heroku。

每次我尝试添加 heroku/python 构建包时,git push 都会被拒绝。

remote: Could not find a version that satisfies the requirement pywin32==224 (from -r /tmp/build_ebad00f3b8d3c9b4b03965f0d0924e7a/requirements.txt (line 57)) (from versions: ) remote: No matching distribution found for pywin32==224 (from -r /tmp/build_ebad00f3b8d3c9b4b03965f0d0924e7a/requirements.txt (line 57))

remote: ! Push rejected, failed to compile Python app.

remote:

remote: ! Push failed

remote: ! Push failed

remote: Verifying deploy...

remote: remote: ! Push rejected to XXXXXX

remote:

To https://git.heroku.com/xxxxxx.git

! [remote rejected] master -> master (pre-receive hook declined)

error: failed to push some refs to 'https://git.heroku.com/xxxxx.git'

没有 heroku/python 构建包,推送工作正常。我认为我的 Python 脚本需要在网络上运行的构建。

我的应用程序在本地运行良好,但与 Python 相关的所有内容在部署时都无法正常工作。我使用 Python 3.7.3 64 位版本。 我的应用程序根目录中有 runtime.txt 和 requirements.txt。

我的 runtime.txt 文件:

python-3.7.3

requirements.txt:

        altgraph==0.16.1
        asn1crypto==0.24.0
        astroid==2.1.0
        awscli==1.16.209
        beautifulsoup4==4.6.3
        botocore==1.12.199
        bs4==0.0.1
        cached-property==1.5.1
        cachetools==3.1.1
        certifi==2019.6.16
        cffi==1.12.2
        chardet==3.0.4
        colorama==0.3.9
        cryptography==2.6.1
        defusedxml==0.5.0
        dnspython==1.16.0
        docutils==0.14
        et-xmlfile==1.0.1
        exchangelib==1.12.2
        future==0.17.1
        google-api-python-client==1.7.9
        google-auth==1.6.3
        google-auth-httplib2==0.0.3
        google-auth-oauthlib==0.4.0
        googletrans==2.4.0
        gspread==3.1.0
        httplib2==0.13.0
        idna==2.8
        isodate==0.6.0
        isort==4.3.4
        jdcal==1.4
        jmespath==0.9.4
        lazy-object-proxy==1.3.1
        lxml==4.3.2
        macholib==1.11
        mccabe==0.6.1
        ntlm-auth==1.2.0
        numpy==1.15.4
        oauth2client==4.1.3
        oauthlib==3.0.1
        openpyxl==2.6.0
        pandas==0.23.4
        pefile==2018.8.8
        py2exe==0.9.2.2
        pyasn1==0.4.5
        pyasn1-modules==0.2.5
        pycparser==2.19
        Pygments==2.3.1
        pygsheets==2.0.1
        PyInstaller==3.4
        pylint==2.2.2
        PyMySQL==0.9.3
        pyodbc==4.0.26
        PySocks==1.6.8
        python-dateutil==2.7.5
        pytz==2019.1
        pywin32==224
        pywin32-ctypes==0.2.0
        pywinrm==0.3.0
        PyYAML==5.1
        requests==2.22.0
        requests-kerberos==0.12.0
        requests-ntlm==1.1.0
        requests-oauthlib==1.2.0
        rsa==3.4.2
        s3transfer==0.2.1
        selenium==3.141.0
        six==1.11.0
        soupsieve==1.8
        stem==1.7.0
        torrequest==0.1.0
        tzlocal==1.5.1
        uritemplate==3.0.0
        urllib3==1.25.3
        uuid==1.30
        virtualenv==16.7.2
        winkerberos==0.7.0
        wrapt==1.10.11
        xlrd==1.1.0
        XlsxWriter==1.1.2
        xmltodict==0.12.0

感谢任何指导。

这是问题所在:

Could not find a version that satisfies the requirement pywin32==224

Heroku 没有 运行 Windows,因此 pywin32 不可用。我不确定你用它做什么。如果您不需要它,请将其删除(连同 pywin32-ctypespywinrm 以及任何其他 Windows 相关的内容),然后重新部署。如果您正在使用这些库,则需要重写那部分代码。

一般来说,您的 requirements.txt 应该只包含您的应用程序实际需要的东西。我怀疑你那里有很多你没有使用的东西。也许您没有使用虚拟环境?