在Django中注册应用程序的正确方法

时间:2017-01-30 10:28:54

标签: django

我注意到在django项目中注册应用程序的方法不同。 例如,如果我有一个名为Catalog的应用程序,在settings.py中,我可以使用应用程序'catalog'的名称或更长名称'catalog.apps.CatalogConfig'。 有什么区别,哪一个更准确地注册应用程序?

2 个答案:

答案 0 :(得分:3)

您(应用用户)应该只关心应用的名称:

IWebElement baseTable = driver.FindElement(By.XPath("//table[@class='TableText1'][2]"));

这是因为应用作者子类INSTALLED_APPS = ( ... 'rock_n_roll', ... ) 可以为其应用配置并提供正确的名称:

AppConfig

来自documentation

  

# rock_n_roll/apps.py from django.apps import AppConfig class RockNRollConfig(AppConfig): name = 'rock_n_roll' verbose_name = "Rock ’n’ roll" 只包含RockNRollConfig时,这会导致INSTALLED_APPS被使用。这样,您就可以使用rock_n_roll功能,而无需用户更新其AppConfig设置。除了这个用例之外,最好避免使用INSTALLED_APPS,而是在default_app_config中指定app config类,如下所述。

为什么要使用INSTALLED_APPS

  

重要的是要理解Django应用程序只是一组与框架的各个部分交互的代码。没有Application对象这样的东西。但是,有一些地方Django需要与已安装的应用程序进行交互,主要用于配置和内省。这就是应用程序注册表为每个已安装的应用程序在AppConfig实例中维护元数据的原因。

答案 1 :(得分:0)

假设您生成了名为todos的应用,则应将其编写为:-

Counting objects: 16, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (16/16), 1.89 KiB | 1.89 MiB/s, done.
Total 16 (delta 8), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Requirements file has been changed, clearing cached dependencies
remote: -----> Installing python-3.6.12
remote: -----> Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote:        Collecting sk-video==1.1.10
remote:          Downloading sk_video-1.1.10-py2.py3-none-any.whl (2.3 MB)
remote:        Collecting opencv_python==4.4.0.42
remote:          Downloading opencv_python-4.4.0.42-cp36-cp36m-manylinux2014_x86_64.whl (49.4 MB)
remote:        Collecting av==8.0.2
remote:          Downloading av-8.0.2-cp36-cp36m-manylinux2010_x86_64.whl (36.9 MB)
remote:        Collecting tqdm==4.48.2
remote:          Downloading tqdm-4.48.2-py2.py3-none-any.whl (68 kB)
remote:        Collecting dlib==19.21.0
remote:          Downloading dlib-19.21.0.tar.gz (3.2 MB)
remote:        Collecting streamlit==0.62.0
remote:          Downloading streamlit-0.62.0-py2.py3-none-any.whl (7.1 MB)
remote:        Collecting torchvision==0.7.0
remote:          Downloading torchvision-0.7.0-cp36-cp36m-manylinux1_x86_64.whl (5.9 MB)
remote:        Collecting tensorflow_gpu==1.15.0
remote:          Downloading tensorflow_gpu-1.15.0-cp36-cp36m-manylinux2010_x86_64.whl (411.5 MB)
remote:        Collecting scipy==1.5.2
remote:          Downloading scipy-1.5.2-cp36-cp36m-manylinux1_x86_64.whl (25.9 MB)
remote:        Collecting numpy==1.19.1
remote:          Downloading numpy-1.19.1-cp36-cp36m-manylinux2010_x86_64.whl (14.5 MB)
remote:        Collecting torch==1.4.0
remote:          Downloading torch-1.4.0-cp36-cp36m-manylinux1_x86_64.whl (753.4 MB)
remote:        Collecting Pillow==7.2.0
remote:          Downloading Pillow-7.2.0-cp36-cp36m-manylinux1_x86_64.whl (2.2 MB)
remote:        Collecting skvideo==0.1.1
remote:          Downloading skvideo-0.1.1.tar.gz (1.5 kB)
remote:        Collecting tensorflow==2.3.0
remote:          Downloading tensorflow-2.3.0-cp36-cp36m-manylinux2010_x86_64.whl (320.4 MB)
remote:        Collecting altair>=3.2.0
remote:          Downloading altair-4.1.0-py3-none-any.whl (727 kB)
remote:        Collecting validators
remote:          Downloading validators-0.18.1-py3-none-any.whl (19 kB)
remote:        Collecting packaging
remote:          Downloading packaging-20.4-py2.py3-none-any.whl (37 kB)
remote:        Collecting tornado>=5.0
remote:          Downloading tornado-6.0.4.tar.gz (496 kB)
remote:        Collecting base58
remote:          Downloading base58-2.0.1-py3-none-any.whl (4.3 kB)
remote:        Collecting astor
remote:          Downloading astor-0.8.1-py2.py3-none-any.whl (27 kB)
remote:        Collecting boto3
remote:          Downloading boto3-1.14.56-py2.py3-none-any.whl (129 kB)
remote:        Collecting pydeck>=0.1.dev5
remote:          Downloading pydeck-0.5.0b1-py2.py3-none-any.whl (4.4 MB)
remote:        Collecting toml
remote:          Downloading toml-0.10.1-py2.py3-none-any.whl (19 kB)
remote:        Collecting watchdog
remote:          Downloading watchdog-0.10.3.tar.gz (94 kB)
remote:        Collecting cachetools>=4.0
remote:          Downloading cachetools-4.1.1-py3-none-any.whl (10 kB)
remote:        Collecting blinker
remote:          Downloading blinker-1.4.tar.gz (111 kB)
remote:        Collecting protobuf>=3.6.0
remote:          Downloading protobuf-3.13.0-cp36-cp36m-manylinux1_x86_64.whl (1.3 MB)
remote:        Collecting botocore>=1.13.44
remote:          Downloading botocore-1.17.56-py2.py3-none-any.whl (6.6 MB)
remote:        Collecting python-dateutil
remote:          Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
remote:        Collecting requests
remote:          Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
remote:        Collecting enum-compat
remote:          Downloading enum_compat-0.0.3-py3-none-any.whl (1.3 kB)
remote:        Collecting tzlocal
remote:          Downloading tzlocal-2.1-py2.py3-none-any.whl (16 kB)
remote:        Collecting click>=7.0
remote:          Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
remote:        Collecting pandas>=0.21.0
remote:          Downloading pandas-1.1.1-cp36-cp36m-manylinux1_x86_64.whl (10.5 MB)
remote:        Collecting absl-py>=0.7.0
remote:          Downloading absl_py-0.10.0-py3-none-any.whl (127 kB)
remote:        Collecting termcolor>=1.1.0
remote:          Downloading termcolor-1.1.0.tar.gz (3.9 kB)
remote:        Collecting six>=1.10.0
remote:          Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
remote:        Collecting google-pasta>=0.1.6
remote:          Downloading google_pasta-0.2.0-py3-none-any.whl (57 kB)
remote:        Collecting opt-einsum>=2.3.2
remote:          Downloading opt_einsum-3.3.0-py3-none-any.whl (65 kB)
remote:        Collecting tensorflow-estimator==1.15.1
remote:          Downloading tensorflow_estimator-1.15.1-py2.py3-none-any.whl (503 kB)
remote:        Collecting grpcio>=1.8.6
remote:          Downloading grpcio-1.31.0-cp36-cp36m-manylinux2014_x86_64.whl (3.4 MB)
remote:        Collecting gast==0.2.2
remote:          Downloading gast-0.2.2.tar.gz (10 kB)
remote:        Collecting tensorboard<1.16.0,>=1.15.0
remote:          Downloading tensorboard-1.15.0-py3-none-any.whl (3.8 MB)
remote:        Collecting wrapt>=1.11.1
remote:          Downloading wrapt-1.12.1.tar.gz (27 kB)
remote:        Collecting keras-preprocessing>=1.0.5
remote:          Downloading Keras_Preprocessing-1.1.2-py2.py3-none-any.whl (42 kB)
remote:        Collecting keras-applications>=1.0.8
remote:          Downloading Keras_Applications-1.0.8-py3-none-any.whl (50 kB)
remote:        Collecting astunparse==1.6.3
remote:          Downloading astunparse-1.6.3-py2.py3-none-any.whl (12 kB)
remote:        Collecting h5py<2.11.0,>=2.10.0
remote:          Downloading h5py-2.10.0-cp36-cp36m-manylinux1_x86_64.whl (2.9 MB)
remote:        Collecting jsonschema
remote:          Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
remote:        Collecting toolz
remote:          Downloading toolz-0.10.0.tar.gz (49 kB)
remote:        Collecting entrypoints
remote:          Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB)
remote:        Collecting jinja2
remote:          Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
remote:        Collecting decorator>=3.4.0
remote:          Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
remote:        Collecting pyparsing>=2.0.2
remote:          Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
remote:        Collecting jmespath<1.0.0,>=0.7.1
remote:          Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
remote:        Collecting s3transfer<0.4.0,>=0.3.0
remote:          Downloading s3transfer-0.3.3-py2.py3-none-any.whl (69 kB)
remote:        Collecting ipywidgets>=7.0.0
remote:          Downloading ipywidgets-7.5.1-py2.py3-none-any.whl (121 kB)
remote:        Collecting ipykernel>=5.1.2; python_version >= "3.4"
remote:          Downloading ipykernel-5.3.4-py3-none-any.whl (120 kB)
remote:        Collecting traitlets>=4.3.2
remote:          Downloading traitlets-4.3.3-py2.py3-none-any.whl (75 kB)
remote:        Collecting pathtools>=0.1.1
remote:          Downloading pathtools-0.1.2.tar.gz (11 kB)
remote:        Collecting docutils<0.16,>=0.10
remote:          Downloading docutils-0.15.2-py3-none-any.whl (547 kB)
remote:        Collecting urllib3<1.26,>=1.20; python_version != "3.4"
remote:          Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
remote:        Collecting idna<3,>=2.5
remote:          Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
remote:        Collecting chardet<4,>=3.0.2
remote:          Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
remote:        Collecting certifi>=2017.4.17
remote:          Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
remote:        Collecting pytz
remote:          Downloading pytz-2020.1-py2.py3-none-any.whl (510 kB)
remote:        Collecting werkzeug>=0.11.15
remote:          Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
remote:        Collecting markdown>=2.6.8
remote:          Downloading Markdown-3.2.2-py3-none-any.whl (88 kB)
remote:        Collecting attrs>=17.4.0
remote:          Downloading attrs-20.2.0-py2.py3-none-any.whl (48 kB)
remote:        Collecting pyrsistent>=0.14.0
remote:          Downloading pyrsistent-0.16.0.tar.gz (108 kB)
remote:        Collecting importlib-metadata; python_version < "3.8"
remote:          Downloading importlib_metadata-1.7.0-py2.py3-none-any.whl (31 kB)
remote:        Collecting MarkupSafe>=0.23
remote:          Downloading MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl (27 kB)
remote:        Collecting nbformat>=4.2.0
remote:          Downloading nbformat-5.0.7-py3-none-any.whl (170 kB)
remote:        Collecting widgetsnbextension~=3.5.0
remote:          Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB)
remote:        Collecting ipython>=4.0.0; python_version >= "3.3"
remote:          Downloading ipython-7.16.1-py3-none-any.whl (785 kB)
remote:        Collecting jupyter-client
remote:          Downloading jupyter_client-6.1.7-py3-none-any.whl (108 kB)
remote:        Collecting ipython-genutils
remote:          Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
remote:        Collecting zipp>=0.5
remote:          Downloading zipp-3.1.0-py3-none-any.whl (4.9 kB)
remote:        Collecting jupyter-core
remote:          Downloading jupyter_core-4.6.3-py2.py3-none-any.whl (83 kB)
remote:        Collecting notebook>=4.4.1
remote:          Downloading notebook-6.1.3-py3-none-any.whl (9.4 MB)
remote:        Collecting pygments
remote:          Downloading Pygments-2.6.1-py3-none-any.whl (914 kB)
remote:        Collecting backcall
remote:          Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
remote:        Collecting jedi>=0.10
remote:          Downloading jedi-0.17.2-py2.py3-none-any.whl (1.4 MB)
remote:        Collecting pickleshare
remote:          Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
remote:        Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
remote:          Downloading prompt_toolkit-3.0.7-py3-none-any.whl (355 kB)
remote:        Collecting pexpect; sys_platform != "win32"
remote:          Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
remote:        Collecting pyzmq>=13
remote:          Downloading pyzmq-19.0.2-cp36-cp36m-manylinux1_x86_64.whl (1.1 MB)
remote:        Collecting nbconvert
remote:          Downloading nbconvert-5.6.1-py2.py3-none-any.whl (455 kB)
remote:        Collecting prometheus-client
remote:          Downloading prometheus_client-0.8.0-py2.py3-none-any.whl (53 kB)
remote:        Collecting terminado>=0.8.3
remote:          Downloading terminado-0.8.3-py2.py3-none-any.whl (33 kB)
remote:        Collecting Send2Trash
remote:          Downloading Send2Trash-1.5.0-py3-none-any.whl (12 kB)
remote:        Collecting argon2-cffi
remote:          Downloading argon2_cffi-20.1.0-cp35-abi3-manylinux1_x86_64.whl (97 kB)
remote:        Collecting parso<0.8.0,>=0.7.0
remote:          Downloading parso-0.7.1-py2.py3-none-any.whl (109 kB)
remote:        Collecting wcwidth
remote:          Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
remote:        Collecting ptyprocess>=0.5
remote:          Downloading ptyprocess-0.6.0-py2.py3-none-any.whl (39 kB)
remote:        Collecting pandocfilters>=1.4.1
remote:          Downloading pandocfilters-1.4.2.tar.gz (14 kB)
remote:        Collecting bleach
remote:          Downloading bleach-3.1.5-py2.py3-none-any.whl (151 kB)
remote:        Collecting testpath
remote:          Downloading testpath-0.4.4-py2.py3-none-any.whl (163 kB)
remote:        Collecting defusedxml
remote:          Downloading defusedxml-0.6.0-py2.py3-none-any.whl (23 kB)
remote:        Collecting mistune<2,>=0.8.1
remote:          Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB)
remote:        Collecting cffi>=1.0.0
remote:          Downloading cffi-1.14.2-cp36-cp36m-manylinux1_x86_64.whl (400 kB)
remote:        Collecting webencodings
remote:          Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
remote:        Collecting pycparser
remote:          Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
remote:        Building wheels for collected packages: dlib, skvideo, tornado, watchdog, blinker, termcolor, gast, wrapt, toolz, pathtools, pyrsistent, pandocfilters
remote:          Building wheel for dlib (setup.py): started
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): still running...
remote:          Building wheel for dlib (setup.py): finished with status 'done'
remote:          Created wheel for dlib: filename=dlib-19.21.0-cp36-cp36m-linux_x86_64.whl size=3978913 sha256=bfad41185a105484c97d2e51b01b4c4c9a7be2dfb082f85af87e58dcd87d62ef
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/ea/bb/c4/f45d62d3f68968af6f00e44db92994be9053be3923f73c7c82
remote:          Building wheel for skvideo (setup.py): started
remote:          Building wheel for skvideo (setup.py): finished with status 'error'
remote:          ERROR: Command errored out with exit status 1:
remote:           command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2rorljje/skvideo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2rorljje/skvideo/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-jakxo3o8
remote:               cwd: /tmp/pip-install-2rorljje/skvideo/
remote:          Complete output (29 lines):
remote:          running bdist_wheel
remote:          running build
remote:          running build_py
remote:          creating build
remote:          creating build/lib
remote:          creating build/lib/skvideo
remote:          copying skvideo/cli.py -> build/lib/skvideo
remote:          copying skvideo/__init__.py -> build/lib/skvideo
remote:          installing to build/bdist.linux-x86_64/wheel
remote:          running install
remote:          Traceback (most recent call last):
remote:            File "<string>", line 1, in <module>
remote:            File "/tmp/pip-install-2rorljje/skvideo/setup.py", line 47, in <module>
remote:              'skvideo = skvideo.cli:cli',
remote:            File "/app/.heroku/python/lib/python3.6/distutils/core.py", line 148, in setup
remote:              dist.run_commands()
remote:            File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 955, in run_commands
remote:              self.run_command(cmd)
remote:            File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 974, in run_command
remote:              cmd_obj.run()
remote:            File "/app/.heroku/python/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 259, in run
remote:              self.run_command('install')
remote:            File "/app/.heroku/python/lib/python3.6/distutils/cmd.py", line 313, in run_command
remote:              self.distribution.run_command(command)
remote:            File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 974, in run_command
remote:              cmd_obj.run()
remote:            File "/tmp/pip-install-2rorljje/skvideo/setup.py", line 20, in run
remote:              raise Exception("You probably meant to install and run sk-video")
remote:          Exception: You probably meant to install and run sk-video
remote:          ----------------------------------------
remote:          ERROR: Failed building wheel for skvideo
remote:          Running setup.py clean for skvideo
remote:          Building wheel for tornado (setup.py): started
remote:          Building wheel for tornado (setup.py): finished with status 'done'
remote:          Created wheel for tornado: filename=tornado-6.0.4-cp36-cp36m-linux_x86_64.whl size=427628 sha256=3976e7dbb69fbf1129a8e2a1e4ca68cd3c1c42b6bac5f8a0feff3d89f81ed388
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/37/a7/db/2d592e44029ef817f3ef63ea991db34191cebaef087a96f505
remote:          Building wheel for watchdog (setup.py): started
remote:          Building wheel for watchdog (setup.py): finished with status 'done'
remote:          Created wheel for watchdog: filename=watchdog-0.10.3-py3-none-any.whl size=73871 sha256=a5ba48cebcb53eac40d1fb68182370595caed147c77a32b26803f034f1d64620
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/a1/d5/fc/fddf5870c0fb0b755abdf41f4889ef54742ee21fff693aae22
remote:          Building wheel for blinker (setup.py): started
remote:          Building wheel for blinker (setup.py): finished with status 'done'
remote:          Created wheel for blinker: filename=blinker-1.4-py3-none-any.whl size=13452 sha256=242b02015d7d84bedacd60b43ef76028b9ba991fac7af38fdac52946d35ebb8f
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/4f/4a/93/c5ed8c11fedbe97fb8b8032b301eaa736248684b44087a7259
remote:          Building wheel for termcolor (setup.py): started
remote:          Building wheel for termcolor (setup.py): finished with status 'done'
remote:          Created wheel for termcolor: filename=termcolor-1.1.0-py3-none-any.whl size=4830 sha256=d6fe885d75fe5fd55d977054677da542fa4b23c357f416de814870f46d8dcc7c
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/93/2a/eb/e58dbcbc963549ee4f065ff80a59f274cc7210b6eab962acdc
remote:          Building wheel for gast (setup.py): started
remote:          Building wheel for gast (setup.py): finished with status 'done'
remote:          Created wheel for gast: filename=gast-0.2.2-py3-none-any.whl size=7539 sha256=b14f75b6d300af62dd7a3bd0e3ee63265458fb9af9fce2a62a08bd61128291ca
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/19/a7/b9/0740c7a3a7d1d348f04823339274b90de25fbcd217b2ee1fbe
remote:          Building wheel for wrapt (setup.py): started
remote:          Building wheel for wrapt (setup.py): finished with status 'done'
remote:          Created wheel for wrapt: filename=wrapt-1.12.1-cp36-cp36m-linux_x86_64.whl size=69737 sha256=272b62acba93300baa1b32bcdda8b568a467da75afe8db8c69234ef4519b1067
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/32/42/7f/23cae9ff6ef66798d00dc5d659088e57dbba01566f6c60db63
remote:          Building wheel for toolz (setup.py): started
remote:          Building wheel for toolz (setup.py): finished with status 'done'
remote:          Created wheel for toolz: filename=toolz-0.10.0-py3-none-any.whl size=55575 sha256=1026d21a7bbbfa27e663bff1e24fc5c6898f40c2647e9996e2d653b5f976efc6
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/fc/da/2e/27e381e9cfc922d078a0a750c7ec72e76df66100e81722516d
remote:          Building wheel for pathtools (setup.py): started
remote:          Building wheel for pathtools (setup.py): finished with status 'done'
remote:          Created wheel for pathtools: filename=pathtools-0.1.2-py3-none-any.whl size=8784 sha256=48d32cb1bd232469c55b0ef97790245cd85d4f51a2bbe6544fae79c288ecb54c
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/42/ea/90/e37d463fb3b03848bf715080595de62545266f53dd546b2497
remote:          Building wheel for pyrsistent (setup.py): started
remote:          Building wheel for pyrsistent (setup.py): finished with status 'done'
remote:          Created wheel for pyrsistent: filename=pyrsistent-0.16.0-cp36-cp36m-linux_x86_64.whl size=115056 sha256=954e8845c4d0325bebe29819942ec538726be0491bf64d323999136c88a811f9
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/d1/8a/1c/32ab9017418a2c64e4fbaf503c08648bed2f8eb311b869a464
remote:          Building wheel for pandocfilters (setup.py): started
remote:          Building wheel for pandocfilters (setup.py): finished with status 'done'
remote:          Created wheel for pandocfilters: filename=pandocfilters-1.4.2-py3-none-any.whl size=7856 sha256=c08e27e6407d021f55331ff47c42e67e59287061ecfc08bd9939ac29939f9375
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-wc99ec58/wheels/46/c4/40/718c6fd14c2129ccaee10e0cf03ef6c4d01d98cad5dbbfda38
remote:        Successfully built dlib tornado watchdog blinker termcolor gast wrapt toolz pathtools pyrsistent pandocfilters
remote:        Failed to build skvideo
remote:        ERROR: torchvision 0.7.0 has requirement torch==1.6.0, but you'll have torch 1.4.0 which is incompatible.
remote:        ERROR: tensorflow 2.3.0 has requirement gast==0.3.3, but you'll have gast 0.2.2 which is incompatible.
remote:        ERROR: tensorflow 2.3.0 has requirement numpy<1.19.0,>=1.16.0, but you'll have numpy 1.19.1 which is incompatible.
remote:        ERROR: tensorflow 2.3.0 has requirement scipy==1.4.1, but you'll have scipy 1.5.2 which is incompatible.
remote:        ERROR: tensorflow 2.3.0 has requirement tensorboard<3,>=2.3.0, but you'll have tensorboard 1.15.0 which is incompatible.
remote:        ERROR: tensorflow 2.3.0 has requirement tensorflow-estimator<2.4.0,>=2.3.0, but you'll have tensorflow-estimator 1.15.1 which is incompatible.
remote:        Installing collected packages: numpy, scipy, sk-video, opencv-python, av, tqdm, dlib, attrs, six, pyrsistent, zipp, importlib-metadata, jsonschema, python-dateutil, pytz, pandas, toolz, entrypoints, MarkupSafe, jinja2, altair, decorator, validators, pyparsing, packaging, tornado, base58, astor, docutils, urllib3, jmespath, botocore, s3transfer, boto3, ipython-genutils, traitlets, jupyter-core, nbformat, pyzmq, jupyter-client, pygments, backcall, parso, jedi, pickleshare, wcwidth, prompt-toolkit, ptyprocess, pexpect, ipython, ipykernel, pandocfilters, webencodings, bleach, testpath, defusedxml, mistune, nbconvert, prometheus-client, terminado, Send2Trash, pycparser, cffi, argon2-cffi, notebook, widgetsnbextension, ipywidgets, pydeck, toml, pathtools, watchdog, cachetools, blinker, protobuf, idna, chardet, certifi, requests, enum-compat, tzlocal, Pillow, click, streamlit, torch, torchvision, absl-py, termcolor, google-pasta, opt-einsum, tensorflow-estimator, grpcio, gast, werkzeug, markdown, tensorboard, wrapt, keras-preprocessing, h5py, keras-applications, tensorflow-gpu, skvideo, astunparse, tensorflow
remote:            Running setup.py install for skvideo: started
remote:            Running setup.py install for skvideo: finished with status 'error'
remote:            ERROR: Command errored out with exit status 1:
remote:             command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2rorljje/skvideo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2rorljje/skvideo/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-8gmzx7nu/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.6m/skvideo
remote:                 cwd: /tmp/pip-install-2rorljje/skvideo/
remote:            Complete output (14 lines):
remote:            running install
remote:            Traceback (most recent call last):
remote:              File "<string>", line 1, in <module>
remote:              File "/tmp/pip-install-2rorljje/skvideo/setup.py", line 47, in <module>
remote:                'skvideo = skvideo.cli:cli',
remote:              File "/app/.heroku/python/lib/python3.6/distutils/core.py", line 148, in setup
remote:                dist.run_commands()
remote:              File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 955, in run_commands
remote:                self.run_command(cmd)
remote:              File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 974, in run_command
remote:                cmd_obj.run()
remote:              File "/tmp/pip-install-2rorljje/skvideo/setup.py", line 20, in run
remote:                raise Exception("You probably meant to install and run sk-video")
remote:            Exception: You probably meant to install and run sk-video
remote:            ----------------------------------------
remote:        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-2rorljje/skvideo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2rorljje/skvideo/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-8gmzx7nu/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.6m/skvideo Check the logs for full command output.
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to murmuring-taiga-52604.
remote: 
To https://git.heroku.com/murmuring-taiga-52604.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/murmuring-taiga-52604.git'