Python 无法在 Heroku 上编译脚本

Python script cannot be compiled on Heroku

所以我在 github 上找到了一个 Twitter 监视器,并想将它托管在 heroku 上。我看了几个视频并更新了 requirements.txt,添加了 Procfile,并添加了 runtime.txt 文件并将我的 python 版本放入其中。

但我只在尝试在 heroku 上构建应用程序时遇到错误。

错误日志:

-----> Building on the Heroku-20 stack

-----> Using buildpack: heroku/python

-----> Python app detected

-----> Using Python version specified in runtime.txt

-----> Installing python-3.9.6

-----> Installing pip 20.2.4, setuptools 47.1.1 and wheel 0.36.2

-----> Installing SQLite3

-----> Installing requirements with pip

       Collecting aiohttp==3.5.4

         Downloading aiohttp-3.5.4.tar.gz (1.1 MB)

         Installing build dependencies: started

         Installing build dependencies: finished with status 'done'

         Getting requirements to build wheel: started

         Getting requirements to build wheel: finished with status 'done'

           Preparing wheel metadata: started

           Preparing wheel metadata: finished with status 'done'

       Collecting astroid==2.2.5

         Downloading astroid-2.2.5-py3-none-any.whl (193 kB)

       Collecting async-timeout==3.0.1

         Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)

       Collecting attrs==19.1.0

         Downloading attrs-19.1.0-py2.py3-none-any.whl (35 kB)

       Collecting certifi==2019.6.16

         Downloading certifi-2019.6.16-py2.py3-none-any.whl (157 kB)

       Collecting chardet==3.0.4

         Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)

       Collecting dhooks==1.1.4

         Downloading dhooks-1.1.4.tar.gz (11 kB)

       Collecting idna==2.7

         Downloading idna-2.7-py2.py3-none-any.whl (58 kB)

       Collecting isort==4.3.21

         Downloading isort-4.3.21-py2.py3-none-any.whl (42 kB)

       Collecting lazy-object-proxy==1.4.1

         Downloading lazy-object-proxy-1.4.1.tar.gz (34 kB)

       Collecting mccabe==0.6.1

         Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)

       Collecting multidict==4.5.2

         Downloading multidict-4.5.2.tar.gz (105 kB)

       Collecting oauthlib==3.0.2

         Downloading oauthlib-3.0.2-py2.py3-none-any.whl (143 kB)

       Collecting pyfiglet==0.8.post1

         Downloading pyfiglet-0.8.post1-py2.py3-none-any.whl (865 kB)

       Collecting pylint==2.3.1

         Downloading pylint-2.3.1-py3-none-any.whl (765 kB)

       Collecting PySocks==1.7.0

         Downloading PySocks-1.7.0-py3-none-any.whl (16 kB)

       Collecting requests==2.20.1

         Downloading requests-2.20.1-py2.py3-none-any.whl (57 kB)

       Collecting requests-oauthlib==1.2.0

         Downloading requests_oauthlib-1.2.0-py2.py3-none-any.whl (22 kB)

       Collecting six==1.12.0

         Downloading six-1.12.0-py2.py3-none-any.whl (10 kB)

       Collecting tweepy==3.8.0

         Downloading tweepy-3.8.0-py2.py3-none-any.whl (28 kB)

       Collecting typed-ast==1.4.0

         Downloading typed_ast-1.4.0.tar.gz (206 kB)

       Collecting urllib3==1.24.3

         Downloading urllib3-1.24.3-py2.py3-none-any.whl (118 kB)

       Collecting wrapt==1.11.2

         Downloading wrapt-1.11.2.tar.gz (27 kB)

       Collecting yarl==1.3.0

         Downloading yarl-1.3.0.tar.gz (159 kB)

       Building wheels for collected packages: aiohttp, dhooks, lazy-object-proxy, multidict, typed-ast, wrapt, yarl

         Building wheel for aiohttp (PEP 517): started

         Building wheel for aiohttp (PEP 517): finished with status 'done'

         Created wheel for aiohttp: filename=aiohttp-3.5.4-py3-none-any.whl size=433157 sha256=29dd53b9a92c453e0c433b26b4e3fbb4f05d55b532b46bfcb1cb207cdc2e3d03

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/4d/b9/64/93e895a06acf653b24f528f16003ca62551660fe57e028244b

         Building wheel for dhooks (setup.py): started

         Building wheel for dhooks (setup.py): finished with status 'done'

         Created wheel for dhooks: filename=dhooks-1.1.4-py3-none-any.whl size=10502 sha256=c9373ca3e2d4f3e9482787f5e30ae592874c4766f55e5c45a6e5ec15ba71704c

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/59/50/a2/61375704307229ac46e79852429f0242d2cf11b0664dd8b358

         Building wheel for lazy-object-proxy (setup.py): started

         Building wheel for lazy-object-proxy (setup.py): finished with status 'done'

         Created wheel for lazy-object-proxy: filename=lazy_object_proxy-1.4.1-cp39-cp39-linux_x86_64.whl size=58346 sha256=e71055627445f81b890e08e1c35d0d4b944bdd49edd55eebfc782935a749f616

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/40/e9/b5/5f679270d6a9059323da690bc386aa591c8d7660ecd8733142

         Building wheel for multidict (setup.py): started

         Building wheel for multidict (setup.py): finished with status 'done'

         Created wheel for multidict: filename=multidict-4.5.2-py3-none-any.whl size=90356 sha256=6c83f65791637b6b6c6dc03e1b9fa6f2f9e470b79afa73e1b91b496ebec279b0

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/38/f1/2a/0a44e164fe71bfd21036447af0204caffcedec1f07326e2a55

         Building wheel for typed-ast (setup.py): started

         Building wheel for typed-ast (setup.py): finished with status 'error'

         ERROR: Command errored out with exit status 1:

          command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-0gyz_kti

              cwd: /tmp/pip-install-5uz2yehi/typed-ast/

         Complete output (63 lines):

         running bdist_wheel

         running build

         running build_py

         creating build

         creating build/lib.linux-x86_64-3.9

         creating build/lib.linux-x86_64-3.9/typed_ast

         copying typed_ast/ast3.py -> build/lib.linux-x86_64-3.9/typed_ast

         copying typed_ast/__init__.py -> build/lib.linux-x86_64-3.9/typed_ast

         copying typed_ast/ast27.py -> build/lib.linux-x86_64-3.9/typed_ast

         copying typed_ast/conversions.py -> build/lib.linux-x86_64-3.9/typed_ast

         package init file 'ast3/tests/__init__.py' not found (or not a regular file)

         creating build/lib.linux-x86_64-3.9/typed_ast/tests

         copying ast3/tests/test_basics.py -> build/lib.linux-x86_64-3.9/typed_ast/tests

         running build_ext

         building '_ast27' extension

         creating build/temp.linux-x86_64-3.9

         creating build/temp.linux-x86_64-3.9/ast27

         creating build/temp.linux-x86_64-3.9/ast27/Custom

         creating build/temp.linux-x86_64-3.9/ast27/Parser

         creating build/temp.linux-x86_64-3.9/ast27/Python

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/bitset.c -o build/temp.linux-x86_64-3.9/ast27/Parser/bitset.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/grammar.c -o build/temp.linux-x86_64-3.9/ast27/Parser/grammar.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/grammar1.c -o build/temp.linux-x86_64-3.9/ast27/Parser/grammar1.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/node.c -o build/temp.linux-x86_64-3.9/ast27/Parser/node.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/parser.c -o build/temp.linux-x86_64-3.9/ast27/Parser/parser.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/parsetok.c -o build/temp.linux-x86_64-3.9/ast27/Parser/parsetok.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/tokenizer.c -o build/temp.linux-x86_64-3.9/ast27/Parser/tokenizer.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/Python-ast.c -o build/temp.linux-x86_64-3.9/ast27/Python/Python-ast.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/asdl.c -o build/temp.linux-x86_64-3.9/ast27/Python/asdl.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/ast.c -o build/temp.linux-x86_64-3.9/ast27/Python/ast.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/graminit.c -o build/temp.linux-x86_64-3.9/ast27/Python/graminit.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/mystrtoul.c -o build/temp.linux-x86_64-3.9/ast27/Python/mystrtoul.o

         gcc -pthread -shared build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o build/temp.linux-x86_64-3.9/ast27/Parser/bitset.o build/temp.linux-x86_64-3.9/ast27/Parser/grammar.o build/temp.linux-x86_64-3.9/ast27/Parser/grammar1.o build/temp.linux-x86_64-3.9/ast27/Parser/node.o build/temp.linux-x86_64-3.9/ast27/Parser/parser.o build/temp.linux-x86_64-3.9/ast27/Parser/parsetok.o build/temp.linux-x86_64-3.9/ast27/Parser/tokenizer.o build/temp.linux-x86_64-3.9/ast27/Python/Python-ast.o build/temp.linux-x86_64-3.9/ast27/Python/asdl.o build/temp.linux-x86_64-3.9/ast27/Python/ast.o build/temp.linux-x86_64-3.9/ast27/Python/graminit.o build/temp.linux-x86_64-3.9/ast27/Python/mystrtoul.o -o build/lib.linux-x86_64-3.9/typed_ast/_ast27.cpython-39-x86_64-linux-gnu.so

         building '_ast3' extension

         creating build/temp.linux-x86_64-3.9/ast3

         creating build/temp.linux-x86_64-3.9/ast3/Custom

         creating build/temp.linux-x86_64-3.9/ast3/Parser

         creating build/temp.linux-x86_64-3.9/ast3/Python

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast3/Custom/typed_ast.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast3/Parser/acceler.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/bitset.c -o build/temp.linux-x86_64-3.9/ast3/Parser/bitset.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/grammar.c -o build/temp.linux-x86_64-3.9/ast3/Parser/grammar.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/grammar1.c -o build/temp.linux-x86_64-3.9/ast3/Parser/grammar1.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/node.c -o build/temp.linux-x86_64-3.9/ast3/Parser/node.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/parser.c -o build/temp.linux-x86_64-3.9/ast3/Parser/parser.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/parsetok.c -o build/temp.linux-x86_64-3.9/ast3/Parser/parsetok.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/tokenizer.c -o build/temp.linux-x86_64-3.9/ast3/Parser/tokenizer.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/Python-ast.c -o build/temp.linux-x86_64-3.9/ast3/Python/Python-ast.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/asdl.c -o build/temp.linux-x86_64-3.9/ast3/Python/asdl.o

         gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/ast.c -o build/temp.linux-x86_64-3.9/ast3/Python/ast.o

         ast3/Python/ast.c: In function ‘decode_bytes_with_escapes’:

         ast3/Python/ast.c:4534:24: error: too many arguments to function ‘_PyBytes_DecodeEscape’

          4534 |     PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, 0, NULL,

               |                        ^~~~~~~~~~~~~~~~~~~~~

         In file included from /app/.heroku/python/include/python3.9/bytesobject.h:75,

                          from /app/.heroku/python/include/python3.9/Python.h:105,

                          from ast3/Python/ast.c:6:

         /app/.heroku/python/include/python3.9/cpython/bytesobject.h:28:24: note: declared here

            28 | PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t,

               |                        ^~~~~~~~~~~~~~~~~~~~~

         error: command '/usr/bin/gcc' failed with exit code 1

         ----------------------------------------

         ERROR: Failed building wheel for typed-ast

         Running setup.py clean for typed-ast

         Building wheel for wrapt (setup.py): started

         Building wheel for wrapt (setup.py): finished with status 'done'

         Created wheel for wrapt: filename=wrapt-1.11.2-cp39-cp39-linux_x86_64.whl size=78284 sha256=7cd943edfab88fae68d5ac2cd5c99e63c882ab1097a0b3a77a6e4074e36fdad6

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/76/e9/66/d4e35bfa6cde3925ff1c497043d7a2ccb305c07ac51fef0e31

         Building wheel for yarl (setup.py): started

         Building wheel for yarl (setup.py): finished with status 'done'

         Created wheel for yarl: filename=yarl-1.3.0-py3-none-any.whl size=84914 sha256=897cf5f968677228befd5c5137f3dd98c6d5255b417d88d6227e0266d5612bdb

         Stored in directory: /tmp/pip-ephem-wheel-cache-0wegl4mw/wheels/c6/b1/70/86cee44ad7a932f47a0af5e391959c01b42447601b6ba467ca

       Successfully built aiohttp dhooks lazy-object-proxy multidict wrapt yarl

       Failed to build typed-ast

       Installing collected packages: multidict, idna, yarl, async-timeout, attrs, chardet, aiohttp, wrapt, lazy-object-proxy, typed-ast, six, astroid, certifi, urllib3, requests, dhooks, isort, mccabe, oauthlib, pyfiglet, pylint, PySocks, requests-oauthlib, tweepy

           Running setup.py install for typed-ast: started

           Running setup.py install for typed-ast: finished with status 'error'

           ERROR: Command errored out with exit status 1:

            command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_lhjgk06/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.9/typed-ast

                cwd: /tmp/pip-install-5uz2yehi/typed-ast/

           Complete output (63 lines):

           running install

           running build

           running build_py

           creating build

           creating build/lib.linux-x86_64-3.9

           creating build/lib.linux-x86_64-3.9/typed_ast

           copying typed_ast/ast3.py -> build/lib.linux-x86_64-3.9/typed_ast

           copying typed_ast/__init__.py -> build/lib.linux-x86_64-3.9/typed_ast

           copying typed_ast/ast27.py -> build/lib.linux-x86_64-3.9/typed_ast

           copying typed_ast/conversions.py -> build/lib.linux-x86_64-3.9/typed_ast

           package init file 'ast3/tests/__init__.py' not found (or not a regular file)

           creating build/lib.linux-x86_64-3.9/typed_ast/tests

           copying ast3/tests/test_basics.py -> build/lib.linux-x86_64-3.9/typed_ast/tests

           running build_ext

           building '_ast27' extension

           creating build/temp.linux-x86_64-3.9

           creating build/temp.linux-x86_64-3.9/ast27

           creating build/temp.linux-x86_64-3.9/ast27/Custom

           creating build/temp.linux-x86_64-3.9/ast27/Parser

           creating build/temp.linux-x86_64-3.9/ast27/Python

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/bitset.c -o build/temp.linux-x86_64-3.9/ast27/Parser/bitset.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/grammar.c -o build/temp.linux-x86_64-3.9/ast27/Parser/grammar.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/grammar1.c -o build/temp.linux-x86_64-3.9/ast27/Parser/grammar1.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/node.c -o build/temp.linux-x86_64-3.9/ast27/Parser/node.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/parser.c -o build/temp.linux-x86_64-3.9/ast27/Parser/parser.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/parsetok.c -o build/temp.linux-x86_64-3.9/ast27/Parser/parsetok.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Parser/tokenizer.c -o build/temp.linux-x86_64-3.9/ast27/Parser/tokenizer.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/Python-ast.c -o build/temp.linux-x86_64-3.9/ast27/Python/Python-ast.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/asdl.c -o build/temp.linux-x86_64-3.9/ast27/Python/asdl.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/ast.c -o build/temp.linux-x86_64-3.9/ast27/Python/ast.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/graminit.c -o build/temp.linux-x86_64-3.9/ast27/Python/graminit.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/app/.heroku/python/include/python3.9 -c ast27/Python/mystrtoul.c -o build/temp.linux-x86_64-3.9/ast27/Python/mystrtoul.o

           gcc -pthread -shared build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o build/temp.linux-x86_64-3.9/ast27/Parser/bitset.o build/temp.linux-x86_64-3.9/ast27/Parser/grammar.o build/temp.linux-x86_64-3.9/ast27/Parser/grammar1.o build/temp.linux-x86_64-3.9/ast27/Parser/node.o build/temp.linux-x86_64-3.9/ast27/Parser/parser.o build/temp.linux-x86_64-3.9/ast27/Parser/parsetok.o build/temp.linux-x86_64-3.9/ast27/Parser/tokenizer.o build/temp.linux-x86_64-3.9/ast27/Python/Python-ast.o build/temp.linux-x86_64-3.9/ast27/Python/asdl.o build/temp.linux-x86_64-3.9/ast27/Python/ast.o build/temp.linux-x86_64-3.9/ast27/Python/graminit.o build/temp.linux-x86_64-3.9/ast27/Python/mystrtoul.o -o build/lib.linux-x86_64-3.9/typed_ast/_ast27.cpython-39-x86_64-linux-gnu.so

           building '_ast3' extension

           creating build/temp.linux-x86_64-3.9/ast3

           creating build/temp.linux-x86_64-3.9/ast3/Custom

           creating build/temp.linux-x86_64-3.9/ast3/Parser

           creating build/temp.linux-x86_64-3.9/ast3/Python

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast3/Custom/typed_ast.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast3/Parser/acceler.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/bitset.c -o build/temp.linux-x86_64-3.9/ast3/Parser/bitset.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/grammar.c -o build/temp.linux-x86_64-3.9/ast3/Parser/grammar.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/grammar1.c -o build/temp.linux-x86_64-3.9/ast3/Parser/grammar1.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/node.c -o build/temp.linux-x86_64-3.9/ast3/Parser/node.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/parser.c -o build/temp.linux-x86_64-3.9/ast3/Parser/parser.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/parsetok.c -o build/temp.linux-x86_64-3.9/ast3/Parser/parsetok.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Parser/tokenizer.c -o build/temp.linux-x86_64-3.9/ast3/Parser/tokenizer.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/Python-ast.c -o build/temp.linux-x86_64-3.9/ast3/Python/Python-ast.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/asdl.c -o build/temp.linux-x86_64-3.9/ast3/Python/asdl.o

           gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast3/Include -I/app/.heroku/python/include/python3.9 -c ast3/Python/ast.c -o build/temp.linux-x86_64-3.9/ast3/Python/ast.o

           ast3/Python/ast.c: In function ‘decode_bytes_with_escapes’:

           ast3/Python/ast.c:4534:24: error: too many arguments to function ‘_PyBytes_DecodeEscape’

            4534 |     PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, 0, NULL,

                 |                        ^~~~~~~~~~~~~~~~~~~~~

           In file included from /app/.heroku/python/include/python3.9/bytesobject.h:75,

                            from /app/.heroku/python/include/python3.9/Python.h:105,

                            from ast3/Python/ast.c:6:

           /app/.heroku/python/include/python3.9/cpython/bytesobject.h:28:24: note: declared here

              28 | PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t,

                 |                        ^~~~~~~~~~~~~~~~~~~~~

           error: command '/usr/bin/gcc' failed with exit code 1

           ----------------------------------------

       ERROR: Command errored out with exit status 1: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5uz2yehi/typed-ast/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_lhjgk06/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.9/typed-ast Check the logs for full command output.

 !     Push rejected, failed to compile Python app.

 !     Push failed

这是我第一次使用 Heroku,所以我真的不知道我在看什么,或者当我发现错误时该去哪里看。关于如何找到我的问题的任何提示?

我想通了。

我检查了 requirements.txt 中的每一个需求,并将版本更改为 https://pypi.org/

中每个依赖项的最新版本

之后工作正常。

在阅读其他多篇帖子后发现了这一点,在这些帖子中,人们只需要从他们使用的依赖项的折旧版本进行更新,因此请检查您的依赖项版本!