上载Python第三方库
GoogleAppEngine文档声明,如果第三方库是用纯Python编写的,则可以上载和使用它们上载Python第三方库,python,google-app-engine,Python,Google App Engine,GoogleAppEngine文档声明,如果第三方库是用纯Python编写的,则可以上载和使用它们 要做到这一点,我需要采取哪些步骤?我在根目录中创建了一个名为fix\u path.py的文件,如下所示: import os import sys import jinja2 # path to lib direcotory sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib')) 然后我创建了一个lib目录,并将
要做到这一点,我需要采取哪些步骤?我在根目录中创建了一个名为fix\u path.py的文件,如下所示:
import os
import sys
import jinja2
# path to lib direcotory
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib'))
然后我创建了一个lib目录,并将模块放入其中
例如,我使用WTForms。我的文件结构如下所示
- 解放党
- wtforms
- fix_path.py
- somefile.py
import fix_path # has to be first.
import wtforms
这是我的github源代码中的示例。签出fix_path.py进行设置,签出views.py进行使用。我尝试了以下步骤
lib/\uuuu init\uuuuu.py
mymodule.py
),并定义了一个函数,即
def myfunc():
return "mycustomfunction"
main.py中导入了mymodule
from lib import mymodule
myfunc()
返回的值,并将其作为模板值传递给我的jinja2模板
类似地,如果我们遵循@rjz在第一个答案中指出的内容,如果第三方库只是一个模块,那么我们可以使用init文件将其保存在libs中,并且可以使用import语句导入(第3点)。如果第三方库是一个包,那么我们可以将其保存在项目根目录中,并使用import语句再次导入它,如main.py中的import语句所示:
from thirdpartypackage import *
只需将它们包含在app engine项目目录(或子目录)中,然后使用相对路径导入它们即可。当您部署到appengine时,子目录也将包含在推送中。感谢您的回复。因此,如果我想包含一个名为“tweetstream”的库,我只需将其文件夹复制到app文件夹(其中包含app.yaml文件)中,并在应用程序代码中只需说“import tweetsream”。就这些吗?我不明白“fix_path.py”文件的用途是什么?另外,如果我在应用程序根文件夹(其中包含“app.yaml”)中创建了“lib”目录,那么我需要提到lib目录的路径吗?fix_path文件只是路由到我存储所有库的lib目录。我在app.waml文件中没有提到lib文件夹。这不应该只是在\u init\uuuuuuuuupy
中吗?