Упаковочная колба с внешней конфигурацией - PullRequest
0 голосов
/ 05 декабря 2018

Я использую Anaconda и настраиваю venv w / python 3.5 , но при необходимости могу легко изменить версию - работает на windows 10

MyЦель состоит в том, чтобы создать файл с совместным доступом со следующим макетом:

shared_folder/
 ├── appLauncher.exe
 ├── config.py
 └── user_data/
     ├── images/
     └── database.db

Где исполняемый файл читает файл config.py, а файл config.py указывает исполняемому файлу на чтение данных из папки user_data.(Пока я не использую файл конфигурации, а вместо этого жестко кодирую пути - просто пытаюсь заставить его работать)

мой текущий каталог выглядит так:

shared_folder/
├── WebApp/
│    ├── static/
│    │    ├── css/
│    │    └── js/
│    ├── templates/
│    ├── __init__.py
│    └── routes.py
├── appLauncher.py
├── config.py
└── user_data/
     ├── images/
     └── database.db

Я борюсь с двумя проблемами (и я публикую это как два вопроса):

1.Как я могу направить флешку смотреть за пределы статической папки и читать данные из папки user_data?Как для базы данных sqlite, так и для изображений?

2.Как я могу упаковать это, используя pyinstaller, чтобы позволить мне ссылаться на config.py и файлы user_data

текущий разорванный пример (только попытка получить одно изображение из user_data):

appLauncher.py:

if __name__ == "__main__":
  from WebApp import app
  app.run()

static / css / play.css:

.helloworld {
  font-size: 80px;
}

templates / index.html:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>my App</title>
  </head>
  <body>
    <link rel="stylesheet" href={{ url_for("static", filename="css/play.css") }}>
    <div class="helloworld">Hello World!</div>
    <!-- <img src='{{ url_for("static", filename="flask.jpg") }}'> -->
    <img src='{{ img }}'>
    <img src='{{ img|safe }}'>
  </body>
</html>

WebApp / init .py:

from flask import Flask
app = Flask(__name__)

import WebApp.routes

WebApp / rout.py:

from WebApp import app
from flask import render_template, url_for, send_file

@app.route("/")
@app.route("/index")
def hello():
    return render_template(
        "index.html",
        img = send_file(r"C:\Users\EvanS\Desktop\FlaskExternalEXE\user_data\flask.jpg")
    )
...