Embedding a Python library in my own package

前端 未结 4 1915
臣服心动
臣服心动 2020-12-08 00:44

How can I \'embed\' a Python library in my own Python package?

Take the Requests library, for instance. How could I integrate it into my own package, the objective b

4条回答
  •  执笔经年
    2020-12-08 01:25

    If it's a pure python library (no compiled modules) you can simply place the library in a folder in your project and add that folder to your module search path. Here's an example project:

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

    The vendor folder in this example contains all third party modules. The file application.py would contain this:

    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
    

    Bonus fact

    As noted by seeafish in the comments, you can install packages directly into the vendor directory:

    pip install  -t /path/to/vendor_dir
    

提交回复
热议问题