15

我正在尝试遵循:

from bs4 import BeautifulSoup

并得到了错误

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/admin/__init__.py", line 355, in post
    exec(compiled_code, globals())
  File "<string>", line 1, in <module>
ImportError: No module named bs4

我该如何使用它Google App Engine runtime 2.7

更新
我的项目结构看起来像

flask-appengine-template/
                        docs/
                        licenses/
                        src/
                            application/
                                        static/
                                        templates/
                                        models.py
                                        settings.py
                                        urls.py
                                        views.py
                        libs/
                            bs4/
                         app.yaml
                         src.py

我从这里使用这个模板 由于app.yamlis的父级src,我添加了一个文件src.py并在那里添加了两行。

我仍然看到同样的错误

ImportError: No module named bs4

但是,我的项目名称app.yamlflaskonappengine 请告诉我我仍然做错了什么?

4

1 回答 1

33

如果您想使用未包含在此列表中的 3rd 方库,则必须手动添加它们。

为了手动包含任何其他库,您必须将它们放在所在的目录中app.yaml。因此,例如,如果您具有以下结构:

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

然后在你的hello.py你必须把这两行放在文件的开头:

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

完成此操作后,您将能够使用要放入该libs目录的任何 3rd 方库。例如:

from bs4 import BeautifulSoup

更新

由于您使用的是该框架,因此回滚您的更改并使用与用于烧瓶或 werkzeug 或其他 3rd 方库的相同模式。把bs4放到src目录下试试就可以正常包含了。

于 2013-02-01T14:05:03.293 回答