#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. Более подробную информацию об этом можно найти здесь.