Я разработал приложение python с использованием bottle (в Linux) и пытался упаковать его в один файл, используя следующее: -
pyinstaller --add-data 'static:static' --add-data 'views:views' myapplication.py --onefile --noconsole
Pyinstaller не показывался любые ошибки, но когда я запускаю приложение, я получил ошибку в веб-браузере, говорящую, что шаблон не найден.
Приложение прекрасно работает без упаковки.
Может кто-нибудь указать мне правильное направление? Спасибо.
=======================================
Дополнительная информация :
В моем bottle коде у меня есть следующее: -
@route('/' + TEMP_DIR + '/<filename:path>')
def send_static(filename):
return static_file(filename, root='./' + TEMP_DIR)
@route('/css/<filename:path>')
def send_static(filename):
return static_file(filename, root='./static/css')
@route('/js/<filename:path>')
def send_static(filename):
return static_file(filename, root='./static/js')
@route('/img/<filename:path>')
def send_static(filename):
return static_file(filename, root='./static/img')
@route('/')
def home():
info = {'application_name': APPLICATION_NAME, 'version': VERSION}
return template('main_page.tpl', info)
Пример кода в html: -
<head>
<link rel="stylesheet" href="/css/styles.css">
</head>
Структура каталогов: -
myapp.py
+
+----static
| +-----css/<css files>
| +-----js/<js files>
| +-----img/<img files>
|
+----views
+-----<tpl files>
Кстати, если я помещу stati c и просматриваю каталоги в папке, содержащей скомпилированный двоичный файл, приложение работает.