Как включить сторонние библиотеки Python в Google App Engine?

Как добавить сторонние библиотеки python в Google App Engine, которые не предоставляются Google? Я пытаюсь использовать BeautifulSoup в Google App Engine и не могу этого сделать. Но мой вопрос касается любой библиотеки, которую я хочу использовать в 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 или терминалом.