How to include third party Python packages in Sublime Text 2 plugins

后端 未结 2 1992
天涯浪人
天涯浪人 2020-12-08 00:33

I\'m writing a sublime text 2 plugin that uses a module SEAPI.py which in itself imports the requests module.

Since sublime text 2 uses it\'s own embedded python int

相关标签:
2条回答
  • 2020-12-08 01:15

    Mikko's answer is good, but I may have found a slightly easier way:

    import MyAwesomePlugin.requests
    

    "MyAwesomePlugin" being the name of your plugin, of course.

    0 讨论(0)
  • 2020-12-08 01:24

    You need to bundle full requests distribution with your Python package and then modify Python's sys.path (where it looks for modules) to point to a folder containing requests folder.

    • Download Requests library from a PyPi and extract it manually under your plugin folder

    • Before importing requests in your plugin, append the corrcet folder to sys.path to point a folder where it can found requests import

    The (untested) code should look like something like this:

      import sys 
      import os
    
      # request-dists is the folder in our plugin
      sys.path.append(os.path.join(os.path.dirname(__file__), "requests-dist"))
    
      import requests
    

    This also assumes that requests setup.py does not do any hacks when you install the module using easy_install or pip.

    You also could import requests zip directly as Python supports importing from ZIP files, assuming requests is distributed in compatible way. Example (advanced):

    https://github.com/miohtama/ztanesh/blob/master/zsh-scripts/python-lib/zipimporter.py

    More about sys.path trick (2004)

    http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html

    0 讨论(0)
提交回复
热议问题