При запуске mange makemigrations я получил ошибку, в которой говорилось, что мне нужно установить Pillow, потому что я использовал ImageField. На MacOS я запустил следующее:
python3 -m pip install pillow Установка по умолчанию для пользователя, так как обычные пакеты сайта недоступны для записи Сбор подушек Загрузка Pillow-7.0.0-cp37-cp37m-macosx_10_6_intel .whl (3,9 МБ) | ███████████████████████████████████████ | 3,9 МБ 2,1 МБ / с Установка собранных пакетов: подушка Успешно установленная подушка-7.0.0
Когда я снова запустил контрольные миграции, он не жаловался, и миграция работала также. В моем файле models.py я не получил никаких ошибок (от PyCharm) для следующего импорта:
from PIL import Image
Я прочитал, что мне пришлось использовать эту команду вместо Pillow. Использование Pillow помечается как не найденное.
Когда я запускаю команду запуска в PyCharm, я получаю сообщение об ошибке:
ОШИБКИ: base.Team.profile_image: (fields.E210) Невозможно использовать ImageField, потому что Подушка не установлена. СОВЕТ: Получите подушку на https://pypi.org/project/Pillow/ или выполните команду "python -m pip install Pillow".
Когда я проверяю интерпретатор проекта в PyCharm, он показывает подушку как пакет в последней версии.
Я использовал home-brew для установки последней версии Python3. Существует также устаревшая версия MacOS. Может ли Подушка быть установлена в неправильном месте? Как я могу сказать?
Еще одна странная вещь - я могу запускать миграции только из PyCharm. Из оболочки в каталоге проекта я получаю:
python3 -m manage.py checkmigrations / usr / local / bin / python3: Ошибка при поиске спецификации модуля для manage.py (ModuleNotFoundError: путь атрибут не найден в «управлении» при попытке найти «manage.py»)
Он отлично работает, когда я запускаю его в PyCharm
Fix
Да, у меня установлен pipenv, но на нем не было оболочки. Я думал, что это была ссылка rbenv, которую я использовал довольно часто. Это мой первый django проект.
Я начал с:
merrittsecurity python3 -m pipenv shell
Моя подсказка изменилась на:
(merrittsecurity) ➜ merrittsecurity
Я использую iTerm2, zshr c и, о мой ZSH. Я предполагаю, что мой ZSH добавляет его. Хорошая особенность.
Из-за переноса строк в моем браузере я был уверен, что это djangopillow или два слова. Я выбрал первое, потому что было бы ошибка, если бы оно не было правильным. Это произошло, и я ввел:
(merrittsecurity) ➜ merrittsecurity pipenv install django pillow
Это сработало, но выдало ошибки, говорящие о том, что может найти djangopillow. Я нашел это в файле пипса и удалил его. Иногда неправильный выбор оставляет детрит. Когда я снова запустил установку подушки, она завершилась без ошибок.