Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
上载Python第三方库_Python_Google App Engine - Fatal编程技术网

上载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目录,并将

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目录,并将模块放入其中

例如,我使用WTForms。我的文件结构如下所示

  • 解放党
    • wtforms
  • fix_path.py
  • somefile.py
当我准备好从somefile脚本调用它时

import fix_path # has to be first.
import wtforms

这是我的github源代码中的示例。签出fix_path.py进行设置,签出views.py进行使用。

我尝试了以下步骤

  • 在我的项目根目录中创建了一个包含init文件的目录(lib),即
    lib/\uuuu init\uuuuu.py
  • 创建了我的模块(
    mymodule.py
    ),并定义了一个函数,即

    def myfunc():
        return "mycustomfunction"
    
  • 在my
    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
    中吗?