33

Google が提供していないサードパーティの Python ライブラリを Google App Engine に追加するにはどうすればよいですか? Google App Engine で BeautifulSoup を使用しようとしていますが、使用できません。しかし、私の質問は、Google App Engine で使用したいライブラリについてです。

4

6 に答える 6

57

Google は、GAE プロジェクトにサードパーティ ライブラリを含めるための文書化された方法を提供しています。

Libraries in Python 2.7 docs の「Adding Third-party Packages to the Application」セクションを参照してください。

追加のピュア python サードパーティ パッケージを含めたい場合は、ベンダーを設定することで実行できます。ベンダーを使用すると、パッケージをプロジェクトのサブディレクトリにインストールして、コードに含めることができます。ベンダーを使用するには、プロジェクトのルートに appengine_config.pyを作成 (または変更)します。

from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')

libそして、すべてのライブラリのソースコードをディレクトリに入れるだけです

> pip install beautifulsoup4 -t lib

したがって、プロジェクトのディレクトリ構造は次のようになります。

project
- lib
  - bs4
- your_code.py

これにより、プロジェクトのソース ファイルがライブラリのパッケージ/モジュールを .xml ファイルに追加されたかのようにインポートできるようになります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
于 2015-04-16T16:41:48.847 に答える
47

実際、この答えはここに適していると思います。

このリストに含まれていないサードパーティのライブラリを使用する場合は、手動で追加する必要があります。

他のライブラリを手動で含めるには、それらが存在するディレクトリ内にある必要がありapp.yamlます。したがって、たとえば、次の構造がある場合:

hello
├── libs
│   └── bs4 
├── hello.py 
└── app.yaml

次にhello.py、ファイルの先頭に次の2行を配置する必要があります。

import sys
sys.path.insert(0, 'libs')

libsこれを実行すると、そのディレクトリに配置するサードパーティのライブラリを使用できるようになります。

例えば:

from bs4 import BeautifulSoup
于 2013-02-13T10:44:17.250 に答える
3

使用するライブラリを含むフォルダーをアプリ エンジン プロジェクトにコピーするだけです。

その後、デプロイすると、アプリケーションとともにアップロードされ、使用できるようになります。

編集:ジェシーの答えは、私が今これを行う方法です。だからそうしなさい!

于 2013-02-13T10:02:42.037 に答える
1

ここでの動作方法は次のとおりです。

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
于 2014-02-24T18:43:20.923 に答える
0

Beautifulsoup をプロジェクトのルートに配置して、すべてアップロードするだけです

于 2013-02-13T10:02:35.733 に答える