Ошибка ModuleNotFoundError: нет модуля с именем ‘icalendar’ google Cloud

#python #flask #calendar

#python #flask #Календарь

Вопрос:

введите описание изображения здесьвведите описание изображения здесь Я получаю «ModuleNotFoundError: нет модуля с именем ‘icalendar’ » после запуска Google app deploy в Gcloud я установил модуль icalendar с помощью pip, но, к моему удивлению, я получаю сообщение об ошибке при попытке развернуть приложение. Я потратил на это часы, ваша помощь будет высоко оценена.

введите описание изображения здесь

Ответ №1:

Согласно официальной документации :

Указание зависимостей

Зависимости для приложений Python объявляются в стандарте requirements.txt

Например:

 Flask==0.10.1
icalendar
  

Поэтому я создал requirements.txt и включил icalendar модуль. Затем я развертываю в App Engine gcloud app deploy , и все работает, как ожидалось.

Вы можете следовать этому руководству для лучшего понимания концепции:

Быстрый запуск для Python 3 в стандартной среде App Engine

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

1. Теперь получаю эту ошибку «File» /home/vmagent/app/main.py «, строка 4, в <module> import lib.icalendar ModuleNotFoundError: нет модуля с именем «lib»»

2. Я думаю, что мой ответ вас смутил. Не является частной зависимостью. Просто добавьте файл requirements.txt с включенным icalendar в качестве моего примера и разверните его. У меня это сработало. Тогда ваш код тот же, from icalendar import Calendar

Ответ №2:

Пожалуйста. проверьте pip list , правильно ли он установлен. Если да, пожалуйста. проверьте этот оператор импорта в терминале python.

Если это работает, используйте which python и убедитесь, что это та же виртуальная среда, из которой вы устанавливаете и запускаете.

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

1. если я проверю список файлов, он появится в списке пакетов, и если я импортирую его в терминал, он не выдает никаких ошибок

2. какой python предоставляет мне этот каталог / usr/ local/bin/python

3. когда я импортирую icalendar по этому пути, который я получил из python / usr / local /bin / python, ошибок вообще нет

4. проверьте which python , где он выдавал ошибку? Это то же самое, где нет ошибок?