Ошибка ModuleNotFoundError: нет модуля с именем ‘xhtml2pdf’ в Google App Engine

#python #google-app-engine #flask #google-cloud-platform #google-cloud-shell

#python #google-app-engine #flask #google-облачная платформа #google-cloud-shell

Вопрос:

Новое в Google App Engine. Сборка полностью с использованием облачной оболочки Google — в основном, изучение платформы перед серьезной разработкой. Выполнены все возможные будущие требования, за исключением отображения графиков на веб-странице и загрузки PDF. Этот вопрос касается загрузки PDF

Я создаю новую папку PDF

В appengine_config.py Я добавляю:

 vendor.add('pdf')
  

Я запускаю команду:

 pip install -t pdf/ xhtml2pdf
  

Я получаю сообщение об ошибке:

 ipython 5.10.0 has requirement prompt-toolkit<2.0.0,>=1.0.4, but you'll have prompt-toolkit 2.0.10 which is incompatible.
  

Я создаю класс PDFHandler.py с кодом, начинающимся как:

 from io import StringIO
from xhtml2pdf import pisa
  

Я пишу остальной код и запускаю приложение, используя python3 main.py , я получаю ошибку как:

 ModuleNotFoundError: No module named 'xhtml2pdf'
  

Чего мне не хватает?
Есть ли лучший способ загрузить пользовательский PDF?

Комментарии:

1. Для требования от ipython в версии prompt-toolkit существует конфликт с требованием от mssql-cli 1.0.0 имеет требование prompt-toolkit<2.1.0,> = 2.0.0. Поэтому я проигнорировал ту часть, которая может способствовать?

Ответ №1:

Я смог воспроизвести вашу проблему, запустив pip install -t pdf/ xhtml2pdf из облачной оболочки, так как появляется следующая ошибка:

Успешно созданный xhtml2pdf PyPDF2 ipython 5.10.0 имеет требование prompt-toolkit<2.0.0,> = 1.0.4, но у вас будет prompt-toolkit 2.0.10, который несовместим. Установка собранных пакетов: webencodings, six, html5lib, PyPDF2, Pillow, reportlab, xhtml2pdf …

Если вы следуете этой документации для создания виртуальной среды в вашей облачной оболочке и используете следующую команду pip3 install -t pdf/ xhtml2pdf --upgrade для установки требуемой зависимости (или вообще создаете requirements.txt файл, добавьте туда необходимые зависимости и запустите pip3 install -r requirements.txt ) вы больше не должны видеть приглашение, описанное выше.

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

В общем, пожалуйста, обратитесь к следующей документации для настройки среды разработки Python.

И если вашему приложению требуется некоторая обработка PDF, я бы порекомендовал вам изучить использование гибкой среды App Engine для установки конкретных зависимостей, необходимых для вашей обработки PDF, в отдельном сервисе, который может быть вызван вашим основным приложением через HTTP. Более подробную информацию об этом можно найти здесь.