Ошибка Django: невозможно использовать ImageField, потому что Pillow не установлена - PullRequest
0 голосов
/ 04 июля 2018

В настоящее время я учусь использовать Django для разработки веб-сервиса. Проходя онлайн-курс по Udemy, я столкнулся с проблемой использования ImageField в models.py. Моя проблема в том, что когда я выполняю команду runserver, Django показывает следующую ошибку, хотя я почти уверен, что библиотека Pillow установлена.

В models.py у меня есть следующий код:

from django.db import models
from django.contrib.auth.models import User 
class UserProfileInfo(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT) 
    portfolio = models.URLField(blank=True)
    picture = models.ImageField(upload_to="profile_pics")
    def __str__(self):
     return user.self.username

Когда я запускаю сервер, я получаю следующую ошибку: python manage.py runserver Выполнение системных проверок ...

Unhandled exception in thread started by <function check_errors<locals>.wrapper at 0x10407b6a8>
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 121, in inner_run
self.check(display_num_errors=True)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site- 
packages/django/core/management/base.py", line 410, in check
 raise SystemCheckError(msg)
django.core.management.base.SystemCheckError: SystemCheckError: System check 
 identified some issues:

ERRORS:
first_app.UserProfileInfo.picture: (fields.E210) Cannot use ImageField because 
Pillow is not installed.
HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip
install Pillow".

System check identified 1 issue (0 silenced).

Итак, следуя сообщению, я проверил установленные модули, используя метод, представленный здесь: Как я могу получить список локально установленных модулей Python? . Следующий код запускается в файле в том же каталоге, что и manage.py. Я использую Pycharm для использования виртуальной среды, поэтому я предполагаю, что я использую ту же среду, что и проект Django, когда я запускаю сервер.

В результате описанного выше способа я мог видеть, что подушка установлена, например:

['argon2 == 0.1.10', 'bcrypt == 3.1.4', 'cffi == 1.11.5', 'django == 2.0.5', 'faker == 0.8.15', ' olefile == 0.45.1 ',' pillow == 5.0.0 ',' pip == 9.0.1 ',' pycparser == 2.18 ',' python-dateutil == 2.7.3 ',' pytz == 2018.4 ' , 'setuptools == 28.8.0', 'six == 1.11.0', 'text-unidecode == 1.2']

Как я могу исправить эту проблему? Или есть ли альтернатива использованию изображений в Django без подушки?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Я не знаю конкретных причин, но мне кажется, что я нашел решение для ситуации, когда virtualenv, созданный PyCharm, не распознается терминалом в PyCharm. Решение состоит в том, чтобы создать virtualenv с помощью библиотеки virtualenv в простом python и установить ее в качестве интерпретатора проекта в PyCharm, а не создавать virtualenv через PyCharm.

0 голосов
/ 05 июля 2018

Чтобы определить virtualenv для вашего проекта в pycharm, сначала перейдите по этому пути:

file -> settings -> Project -> Project Interpreter

теперь вы можете видеть все проекты, которые открыты в pycharm. выберите нужный проект и нажмите Кнопка конфигурации Project Interpreter , затем выберите Добавить локальный интерпретатор Python . в этой форме выберите Существующая среда . теперь внутри кнопки Интерпретатор вы можете выбрать желаемый virtualenv (myvirtualenv -> bin -> python3.x)

...