0

What I'm basically trying to do is use flask_uploads to find the path for an uploaded photo. I'm getting 'RuntimeError: no destination for set images' whenever I run the code. I've been over about 10 different tutorials and have gone over the code about 50 times. Please, for my sanity, help me out.

Here's my code

from colorthief import ColorThief
import matplotlib.pyplot as plt
from flask_uploads import configure_uploads, IMAGES, UploadSet
from flask import Flask, render_template, redirect, url_for, request
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, FileField
import os

class InsertPic(FlaskForm):
    image = FileField('Select Your Picture')


URL = 'D:\Python Porfolio\Colors\static\images'

app = Flask(__name__)
app.config['SECRET_KEY'] = '8BYkEfBA6O6donzWlSihBXox7C0sKR6b'
app.config['UPLOADED_PHOTOS_DEST'] = 'static/images'

Bootstrap(app)

images = UploadSet('images', IMAGES)
configure_uploads(app, images)


@app.route('/', methods=['GET', 'POST'])
def index():
    form = InsertPic()

    if form.validate_on_submit():
        filename = images.save(form.image.data)
        file_url = images.url(filename)

        ct = ColorThief(f"{file_url}")
        colors = ct.get_palette(color_count=11)
        plt.imshow([[colors[a] for a in range(10)]])
        plt.axis('off')
        plt.savefig("output.jpg", bbox_inches='tight', pad_inches=0)
        # Convet to HEX Values

        separate_colors = []

        for color in colors:
            a = f"#{color[0]:02x}{color[1]:02x}{color[0]:02x}"
            separate_colors.append(a)
        return render_template('colors.html', colors=separate_colors)

    return render_template('index.html', form=form)


if __name__ == "__main__":
    app.run(debug=True)

Here's my Traceback info:

  File "D:\prjects\pythonProject3\main.py", line 23, in <module>
    configure_uploads(app, images)
  File "D:\prjects\pythonProject3\venv\lib\site-packages\flask_uploads\flask_uploads.py", line 122, in configure_uploads
    config = config_for_set(uset, app, defaults)
  File "D:\prjects\pythonProject3\venv\lib\site-packages\flask_uploads\flask_uploads.py", line 84, in config_for_set
    raise RuntimeError("no destination for set %s" % uset.name)
RuntimeError: no destination for set images

Thomas G
  • 11
  • 2
  • In the source [code tests](https://github.com/maxcountryman/flask-uploads/blob/f66d7dc93e684fa0a3a4350a38e41ae00483a796/tests.py), `'UPLOADED_PHOTOS_DEST'` is an absolute path. – pjcunningham Jan 25 '23 at 10:22

0 Answers0