Я пытаюсь упаковать простое приложение Flask с setuptools / wheel, следуя этому руководству в качестве руководства:
https://web.archive.org/web/20160304042817/http://www.plankandwhittle.com/packaging-a-flask-web-app/
Но когда я устанавливаю получившееся колесо в новой виртуальной средедля тестирования я получаю сообщение об ошибке, указывающее, что шаблоны не были включены, хотя я настроил для этого файл setup.py.
Вот мой файл setup.py:
from setuptools import setup, find_packages
setup(
name="finapp",
version="0.1",
packages=find_packages(),
install_requires=[
"Flask==1.0.2",
"Flask-Login==0.4.1",
"py-bcrypt==0.4",
],
scripts=['finapp.py',
'users.py'],
include_package_data=True,
package_data={
'static': 'static/*',
'templates': 'templates/*',
},
classifiers=[
"Private :: Do Not Upload"
],
)
Когда я устанавливаю в свежем virtualenv, приложение Flask запускается, но когда я получаю доступ через браузер, я получаю следующую трассировку:
[2019-05-19 15:03:32,922] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask_login/utils.py", line 261, in decorated_view
return func(*args, **kwargs)
File "/home/paul/projects/finstall/finstall/bin/finapp.py", line 55, in index
return render_template('main.html')
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/templating.py", line 134, in render_template
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/jinja2/environment.py", line 869, in get_or_select_template
return self.get_template(template_name_or_list, parent, globals)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/jinja2/environment.py", line 830, in get_template
return self._load_template(name, self.make_globals(globals))
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/jinja2/environment.py", line 804, in _load_template
template = self.loader.load(self, name, globals)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/jinja2/loaders.py", line 113, in load
source, filename, uptodate = self.get_source(environment, name)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/templating.py", line 58, in get_source
return self._get_source_fast(environment, template)
File "/home/paul/projects/finstall/finstall/lib/python3.7/site-packages/flask/templating.py", line 86, in _get_source_fast
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: main.html
Обратите внимание, что приложение прекрасно работает в оригинальном virtualenv во времясоздание колеса.
РЕДАКТИРОВАТЬ: список файлов в проекте:
drwxrwxr-x 5 paul paul 4096 May 19 12:23 build/
drwxrwxr-x 2 paul paul 4096 May 18 18:00 dist/
drwxrwxr-x 2 paul paul 4096 May 19 15:44 finapp.egg-info/
-rw-rw-r-- 1 paul paul 4653 May 17 22:15 finapp.py
drwxrwxr-x 2 paul paul 4096 May 19 14:04 __pycache__/
-rw-rw-r-- 1 paul paul 441 May 19 15:44 setup.py
drwxrwxr-x 2 paul paul 4096 May 19 13:40 static/
drwxrwxr-x 2 paul paul 4096 May 11 13:58 templates/
-rw-rw-r-- 1 paul paul 173 May 17 22:14 users.py
drwxrwxr-x 6 paul paul 4096 May 4 14:47 venv/
tree templates static
templates
├── login.html
└── main.html
static
├── app.js
├── axios.js
├── style.css
└── vue.js