我正在 google appengine 上开发一个 twitter 应用程序——为此我想使用 Twython 库。我尝试使用 pip 安装它 - 但它要么将其安装在主 python 目录中,要么不导入所有依赖项。
我可以简单地将 Twython 的所有文件复制到 appengine 根目录,并手动导入所有依赖库,但这似乎非常错误。如何在包含所有依赖项的特定文件夹中安装包?
谢谢
我正在 google appengine 上开发一个 twitter 应用程序——为此我想使用 Twython 库。我尝试使用 pip 安装它 - 但它要么将其安装在主 python 目录中,要么不导入所有依赖项。
我可以简单地将 Twython 的所有文件复制到 appengine 根目录,并手动导入所有依赖库,但这似乎非常错误。如何在包含所有依赖项的特定文件夹中安装包?
谢谢
如果您将模块文件放在一个目录中,例如external_modules/
,然后使用sys.path.insert(0, 'external_modules')
,您可以包含该模块,因为它是一个内部模块。
您必须sys.path.insert
在第一次导入模块之前调用。
示例:如果您将“module.pyd”放入external_modules/
并希望将其包含在 中import module
,则将其放在sys.path.insert
前面。
这sys.path.insert()
是一个应用程序范围的调用,因此您只需调用一次。最好将它放在主文件中,在任何其他导入之前(import sys
当然除外)。
使用虚拟环境和虚拟环境包装器,您不必使用包装器,但为了简单起见使用它..
如果您使用 pip 安装软件包,请尝试以下操作:
我个人需要我刚刚在 git repos 中使用的库。我只是符号链接了这些库而不是安装它们。但在这种情况下,我也必须手动对所有依赖项进行符号链接。
您可以使用 gaenv(我为应用引擎构建的包管理器)。它只创建符号链接并遵循 pip requirements.txt 格式。您可以像这样安装和使用:
pip install gaenv
# create requirements.txt -> twython
pip install -r requirements.txt
gaenv
这将创建到所有必需库的 gaenv_lib/ 的符号链接。然后会要求添加导入语句。