在我自己的包中嵌入Python库

Sea*_*one 25 python

如何在我自己的Python包中"嵌入"Python库?

请求库为例.我怎么能将它集成到我自己的包中,目的是允许我在不同的机器上运行我的应用程序,而不是在每个机器上实际安装Requests,而是将它放在与我的包相同的文件夹中?

这甚至可能吗?

Hub*_*bro 33

如果它是一个纯python库(没有编译过的模块),您可以简单地将库放在项目的一个文件夹中,并将该文件夹添加到模块搜索路径中.这是一个示例项目:

|- application.py
|- lib
|  `- ...
|- docs
|  `- ...
`- vendor
   |- requests
   |  |- __init__.py
   |  `- ...
   `- other libraries...

vendor此示例中的文件夹包含所有第三方模块.该文件application.py将包含:

import os
import sys

# Add vendor directory to module search path
parent_dir = os.path.abspath(os.path.dirname(__file__))
vendor_dir = os.path.join(parent_dir, 'vendor')

sys.path.append(vendor_dir)

# Now you can import any library located in the "vendor" folder!
import requests
Run Code Online (Sandbox Code Playgroud)

奖金事实

正如评论中的seeafish所述,您可以将软件包直接安装到供应商目录中:

pip install <pkg_name> -t /path/to/vendor_dir
Run Code Online (Sandbox Code Playgroud)

  • 我想补充一点,你可以通过运行`pip install <pkg_name> -t/path/to/vendor_dir'将pip包直接安装到前面提到的`vendor`目录中. (3认同)