Как загрузить файл html из git, используя python? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь развернуть приложение Da sh на Heroku. В локальной системе приложение работает отлично. Для приложения мне нужно импортировать несколько файлов данных с различными расширениями - '.csv' / '.txt' / '. html'.

Для развертывания в Heroku я создал репозиторий Git и поиск файлов оттуда. Я импортирую их, используя путь к данным «Raw» из Git для каждого из этих файлов.

Я проверил начальные журналы и исправил все проблемы, связанные с пакетами, в файле 'needs.txt'

Но я все еще не могу запустить приложение. Даже после успешного развертывания. Это мой журнал ошибок -

2020-04-03T17:20:46.813383+00:00 app[web.1]:     self.reap_workers()
2020-04-03T17:20:46.813419+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2020-04-03T17:20:46.813868+00:00 app[web.1]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2020-04-03T17:20:46.813892+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2020-04-03T17:20:46.913389+00:00 heroku[web.1]: State changed from up to crashed
2020-04-03T17:20:50.000000+00:00 app[api]: Build succeeded
2020-04-03T17:21:02.166696+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=covid19-extractor.herokuapp.com request_id=6df7e7c2-1bcc-4390-8873-11f001c2bbf9 fwd="106.51.31.180" dyno= connect= service= status=503 bytes= protocol=https
2020-04-03T17:21:02.865422+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=covid19-extractor.herokuapp.com request_id=bf774cd5-fb5f-4627-ab11-137f756ee48f fwd="106.51.31.180" dyno= connect= service= status=503 bytes= protocol=https
2020-04-03T17:21:09.553299+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=covid19-extractor.herokuapp.com request_id=0b7a178d-b477-4caa-bf93-4619f5c9da09 fwd="106.51.31.180" dyno= connect= service= status=503 bytes= protocol=https
2020-04-03T17:21:10.223515+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=covid19-extractor.herokuapp.com request_id=235901a2-1ac8-4c02-8e14-2030583dd7fd fwd="106.51.31.180" dyno= connect= service= status=503 bytes= protocol=https
2020-04-03T17:28:20.503577+00:00 heroku[web.1]: State changed from crashed to starting
2020-04-03T17:28:32.032154+00:00 app[web.1]: [2020-04-03 17:28:32 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-04-03T17:28:32.033060+00:00 app[web.1]: [2020-04-03 17:28:32 +0000] [4] [INFO] Listening at: http://0.0.0.0:6703 (4)
2020-04-03T17:28:32.033240+00:00 app[web.1]: [2020-04-03 17:28:32 +0000] [4] [INFO] Using worker: sync
2020-04-03T17:28:32.038216+00:00 app[web.1]: [2020-04-03 17:28:32 +0000] [10] [INFO] Booting worker with pid: 10
2020-04-03T17:28:32.077247+00:00 app[web.1]: [2020-04-03 17:28:32 +0000] [11] [INFO] Booting worker with pid: 11
2020-04-03T17:28:32.764140+00:00 heroku[web.1]: State changed from starting to up
2020-04-03T17:28:33.447784+00:00 app[web.1]: Layout complete..
2020-04-03T17:28:33.481467+00:00 app[web.1]: Layout complete..
2020-04-03T17:28:33.708697+00:00 app[web.1]: Data load complete..
2020-04-03T17:28:33.712337+00:00 app[web.1]: Data load complete..
2020-04-03T17:28:33.741698+00:00 app[web.1]: Creating Layout..
2020-04-03T17:28:33.765243+00:00 app[web.1]: Creating Layout..
2020-04-03T17:28:34.942880+00:00 app[web.1]: [2020-04-03 17:28:34 +0000] [10] [ERROR] Exception in worker process
2020-04-03T17:28:34.942929+00:00 app[web.1]: Traceback (most recent call last):
2020-04-03T17:28:34.942931+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-04-03T17:28:34.942932+00:00 app[web.1]:     worker.init_process()
2020-04-03T17:28:34.942932+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-04-03T17:28:34.942932+00:00 app[web.1]:     self.load_wsgi()
2020-04-03T17:28:34.942933+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-04-03T17:28:34.942933+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2020-04-03T17:28:34.942934+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-04-03T17:28:34.942934+00:00 app[web.1]:     self.callable = self.load()
2020-04-03T17:28:34.942935+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-04-03T17:28:34.942935+00:00 app[web.1]:     return self.load_wsgiapp()
2020-04-03T17:28:34.942935+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-04-03T17:28:34.942936+00:00 app[web.1]:     return util.import_app(self.app_uri)
2020-04-03T17:28:34.942936+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2020-04-03T17:28:34.942937+00:00 app[web.1]:     mod = importlib.import_module(module)
2020-04-03T17:28:34.942937+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2020-04-03T17:28:34.942938+00:00 app[web.1]:     return _bootstrap._gcd_import(name[level:], package, level)
2020-04-03T17:28:34.942938+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2020-04-03T17:28:34.942939+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2020-04-03T17:28:34.942939+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
2020-04-03T17:28:34.942940+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
2020-04-03T17:28:34.942940+00:00 app[web.1]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2020-04-03T17:28:34.942940+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-04-03T17:28:34.942941+00:00 app[web.1]:   File "/app/app.py", line 436, in <module>
2020-04-03T17:28:34.942941+00:00 app[web.1]:     [Input('dd','value')]
2020-04-03T17:28:34.942942+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 1319, in callback
2020-04-03T17:28:34.942942+00:00 app[web.1]:     self._validate_callback(output, inputs, state)
2020-04-03T17:28:34.942942+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 875, in _validate_callback
2020-04-03T17:28:34.942943+00:00 app[web.1]:     layout = self._cached_layout or self._layout_value()
2020-04-03T17:28:34.942943+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 442, in _layout_value
2020-04-03T17:28:34.942944+00:00 app[web.1]:     self._cached_layout = self._layout()
2020-04-03T17:28:34.942944+00:00 app[web.1]:   File "/app/app.py", line 255, in serve_layout
2020-04-03T17:28:34.942947+00:00 app[web.1]:     children = [html.Iframe(srcDoc = open(str(data_path) + 'TotalCases.html').read(), width = '100%', height = '400')]
2020-04-03T17:28:34.942955+00:00 app[web.1]: FileNotFoundError: [Errno 2] No such file or directory: 'https://raw.githubusercontent.com/pratik-bose/CoronaTracker/V1/TotalCases.html'
2020-04-03T17:28:34.943015+00:00 app[web.1]: [2020-04-03 17:28:34 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-04-03T17:28:35.028451+00:00 app[web.1]: [2020-04-03 17:28:35 +0000] [11] [ERROR] Exception in worker process
2020-04-03T17:28:35.028454+00:00 app[web.1]: Traceback (most recent call last):
2020-04-03T17:28:35.028455+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-04-03T17:28:35.028456+00:00 app[web.1]:     worker.init_process()
2020-04-03T17:28:35.028456+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-04-03T17:28:35.028460+00:00 app[web.1]:     self.load_wsgi()
2020-04-03T17:28:35.028460+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-04-03T17:28:35.028461+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2020-04-03T17:28:35.028461+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-04-03T17:28:35.028462+00:00 app[web.1]:     self.callable = self.load()
2020-04-03T17:28:35.028462+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-04-03T17:28:35.028463+00:00 app[web.1]:     return self.load_wsgiapp()
2020-04-03T17:28:35.028463+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-04-03T17:28:35.028463+00:00 app[web.1]:     return util.import_app(self.app_uri)
2020-04-03T17:28:35.028464+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2020-04-03T17:28:35.028464+00:00 app[web.1]:     mod = importlib.import_module(module)
2020-04-03T17:28:35.028465+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2020-04-03T17:28:35.028465+00:00 app[web.1]:     return _bootstrap._gcd_import(name[level:], package, level)
2020-04-03T17:28:35.028466+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2020-04-03T17:28:35.028466+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2020-04-03T17:28:35.028467+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
2020-04-03T17:28:35.028467+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
2020-04-03T17:28:35.028467+00:00 app[web.1]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2020-04-03T17:28:35.028468+00:00 app[web.1]:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-04-03T17:28:35.028468+00:00 app[web.1]:   File "/app/app.py", line 436, in <module>
2020-04-03T17:28:35.028468+00:00 app[web.1]:     [Input('dd','value')]
2020-04-03T17:28:35.028469+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 1319, in callback
2020-04-03T17:28:35.028469+00:00 app[web.1]:     self._validate_callback(output, inputs, state)
2020-04-03T17:28:35.028470+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 875, in _validate_callback
2020-04-03T17:28:35.028470+00:00 app[web.1]:     layout = self._cached_layout or self._layout_value()
2020-04-03T17:28:35.028471+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dash/dash.py", line 442, in _layout_value
2020-04-03T17:28:35.028471+00:00 app[web.1]:     self._cached_layout = self._layout()
2020-04-03T17:28:35.028471+00:00 app[web.1]:   File "/app/app.py", line 255, in serve_layout
2020-04-03T17:28:35.028472+00:00 app[web.1]:     children = [html.Iframe(srcDoc = open(str(data_path) + 'TotalCases.html').read(), width = '100%', height = '400')]
2020-04-03T17:28:35.028480+00:00 app[web.1]: FileNotFoundError: [Errno 2] No such file or directory: 'https://raw.githubusercontent.com/pratik-bose/CoronaTracker/V1/TotalCases.html'
2020-04-03T17:28:35.028674+00:00 app[web.1]: [2020-04-03 17:28:35 +0000] [11] [INFO] Worker exiting (pid: 11)
2020-04-03T17:28:35.335859+00:00 app[web.1]: [2020-04-03 17:28:35 +0000] [4] [INFO] Shutting down: Master
2020-04-03T17:28:35.335982+00:00 app[web.1]: [2020-04-03 17:28:35 +0000] [4] [INFO] Reason: Worker failed to boot.
2020-04-03T17:28:35.419048+00:00 heroku[web.1]: State changed from up to crashed

Кажется, файл 'xxx / TotalCases. html' не найден. Но он есть в репо git. Также перед этим шагом импортируется несколько .csv файлов. Кажется, они работают нормально, используя один и тот же путь.

#

Я думаю, что сузил проблему. На мгновение кажется, что это не проблема Heroku, поэтому заголовок вводил в заблуждение и был обновлен. Проблема под рукой - загрузка файла из git с использованием его необработанного пути не работает для файлов HTML. Загружается внутренний код файла, а не сам файл.

Как загрузить файл html из Git Репо?

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 09 апреля 2020

Я нашел решение общей проблемы, а не этой конкретной c проблемы. Я занимался созданием карты фолиума и сохранением ее в папке как html. Когда я запускаю приложение da sh, требуется выбрать карту из указанной папки c.

Теперь, после перехода на git, я не смог найти файл html В связи с вышеупомянутым вопросом. Поэтому решение состоит в том, чтобы генерировать карты на лету, и вот как я это сделал -

m = folium.map()
#instead of m.save(), this is what I do.
m = m._repr_html_()
#in dash app then I call it through a html.Iframe
html.Iframe(srcDoc = m)

...