Как добавить сторонние библиотеки python в Google App Engine, которые не предоставляются Google? Я пытаюсь использовать BeautifulSoup в Google App Engine и не могу этого сделать. Но мой вопрос касается любой библиотеки, которую я хочу использовать в Google App Engine.
Как включить сторонние библиотеки Python в Google App Engine?
Ответ 1
На самом деле, я думаю, этот ответ подходит лучше.
Если вы хотите использовать сторонние библиотеки, которые не включены в этот список, вам придется добавлять их вручную.
Чтобы включить вручную любую другую библиотеку, вы должны иметь их в каталоге, где живет app.yaml
. Так, например, если у вас есть следующая структура:
hello
├── libs
│ └── bs4
├── hello.py
└── app.yaml
то в вашем hello.py
вам нужно поместить эти две строки в начало файла:
import sys
sys.path.insert(0, 'libs')
После этого вы сможете использовать любую стороннюю библиотеку, которую вы собираетесь разместить в этом каталоге libs
.
Например:
from bs4 import BeautifulSoup
Ответ 2
Google предоставила документально подтвержденный способ включения сторонних библиотек в ваш проект GAE.
См. раздел "Добавление сторонних пакетов в приложение" в библиотеках в документах Python 2.7.
Если вы хотите включить дополнительные сторонние пакеты с чистым питоном, вы можете сделать это, настроив вендование. Vendoring позволяет вам устанавливать пакеты в подкаталог вашего проекта и включать их в свой код. Чтобы использовать вендование, создайте (или измените) appengine_config.py в корне вашего проекта.
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
А затем просто поместите весь исходный код вашего libs в каталог lib
> pip install beautifulsoup4 -t lib
Итак, структура вашего проекта выглядит следующим образом:
project
- lib
- bs4
- your_code.py
Это позволит исходным файлам проекта импортировать пакеты/модули libs, как если бы они были добавлены в ваш PYTHON_PATH
. Например:
# file: your_code.py
import bs4 # no need for 'from lib import bs4'
# do stuff with bs4...
Вы также можете легко установить все из файла requirements.txt, выполнив следующую команду
> pip install -t lib -r requirements.txt
Ответ 3
Вы просто скопируете папку, содержащую библиотеку, которую вы хотите использовать, в проект вашего приложения.
Затем, когда вы развертываете его, загружаете с помощью своего приложения и можете использовать его.
EDIT: Ответ Джесси - вот как я теперь это делаю. Так сделайте это!
Ответ 4
Как это работает:
import sys
# sys.path.insert(0, 'libs') #"Old" way, not working for me.
sys.path.append(os.path.join(os.path.dirname(__file__), "libs")) # This works!
Затем импортируйте обычно:
from bs4 import BeautifulSoup
Ответ 5
Просто поместите Beautifulsoup в корень вашего проекта и загрузите его все
Ответ 6
pip install -t lib имя_пакета
lib: расположение сторонних библиотек
Тогда вы можете использовать этот пакет, как обычную библиотеку, которую вы используете с ipython или терминалом.