我正在google appengine上开发一个推特应用程序 - 因为我想使用Twython库。我尝试使用pip安装它 - 但它要么安装在主python目录中,要么不导入所有依赖项。
我可以简单地将Twython的所有文件复制到appengine根目录,并手动导入所有依赖库,但这看起来非常错误。如何在特定文件夹中安装包,包括所有依赖项?
由于
答案 0 :(得分:3)
如果您将模块文件放在一个目录中,例如external_modules/
,然后使用sys.path.insert(0, 'external_modules')
,则可以包含该模块,因为它将是一个内部模块。
您必须在首次导入模块之前调用sys.path.insert
。
示例:如果您在external_modules/
中放置了“module.pyd”,并希望将其与import module
包含在一起,那么请先放置sys.path.insert
。
sys.path.insert()
是应用程序范围的通话,因此您只需拨打一次电话。在任何其他导入(当然除import sys
之外)之前,最好将它放在主文件中。
答案 1 :(得分:0)
使用虚拟环境和虚拟环境包装器,您不必使用包装器,但为了简单起见使用它。
答案 2 :(得分:0)
如果您使用pip安装软件包,请尝试以下方法:
Install a Python package into a different directory using pip?
我个人需要我刚从git repos中使用的库。我只是对这些库进行符号链接而不是安装它们。但在这种情况下,我不得不手动将所有依赖项符号链接。
答案 3 :(得分:0)
你可以使用gaenv(我为app引擎构建的包管理器)。它只创建符号链接并遵循pip requirements.txt格式。你可以安装&使用如:
pip install gaenv
# create requirements.txt -> twython
pip install -r requirements.txt
gaenv
这会为所有必需库的gaenv_lib /创建符号链接。然后会要求添加import语句。