sublime programa paquetes instalar full descargar correr control como python plugins sublimetext2 distutils python-requests

programa - Cómo incluir paquetes de Python de terceros en plugins de Sublime Text 2



plugins sublime text 3 (2)

La respuesta de Mikko es buena, pero puede haber encontrado una manera un poco más fácil:

import MyAwesomePlugin.requests

"MyAwesomePlugin" es el nombre de tu complemento, por supuesto.

Estoy escribiendo un sublime complemento de texto 2 que utiliza un módulo SEAPI.py que en sí mismo importa el módulo de solicitudes .

Dado que el texto sublime 2 usa su propio intérprete de python incorporado, no ve el módulo de solicitudes instalado en mi máquina ubuntu (obtengo el siguiente error: ImportError: ningún módulo llamado solicitudes).

La mejor solución que pude encontrar hasta ahora fue copiar el módulo de ''solicitudes'' (el directorio completo de archivos) de /usr/lib/python2.7/dist-packages/requests en el directorio de mi complemento en el sublime directorio de paquetes de texto. Pero después de eso, dice que no puede encontrar el módulo ''urllib3''.

¿Hay una mejor manera de importar el módulo de solicitudes para que no tenga que copiar todos los archivos en mi directorio de complementos?

El código actual que estoy usando es el siguiente:

MyPlugin.py

import sublime import sublime_plugin import SEAPI ...

SEAPI.py

import requests try: import simplejson as json except: import json from time import time, sleep ...

Editar: la respuesta seleccionada es correcta y corrige mi pregunta principal, pero existe un problema diferente al usar la versión actual de ''Solicitudes'' con el intérprete de texto sublime 2 incrustado. A la python de ST2 le faltan varios módulos que existen en la versión regular de python 2.7 (como ''fileio'').

Lo he solucionado usando el módulo ''Solicitudes'' desde aquí: https://github.com/bgreenlee/sublime-github

Y tuve que editar el archivo ''urllib3 / response.py'' a esto:

try: from cStringIO import StringIO as BytesIO except ImportError: pass # _fileio doesn''t seem to exist in ST''s python in Linux, but we don''t need it


sys.path agrupar la distribución de solicitudes completas con su paquete de Python y luego modificar sys.path de Python (donde busca módulos) para apuntar a una carpeta que contenga la carpeta de requests .

  • Descargue la biblioteca Solicitudes desde un PyPi y extráigala manualmente en su carpeta de complementos.

  • Antes de importar solicitudes en su complemento, anexe la carpeta corrcet a sys.path para señalar una carpeta donde pueda encontrar solicitudes de importación.

El código (no probado) debería verse más o menos así:

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

Esto también asume que las requests setup.py no hacen ningún corte cuando instalas el módulo usando easy_install o pip .

También podría importar requests zip directamente ya que Python admite la importación desde archivos ZIP, suponiendo que las solicitudes se distribuyan de manera compatible. Ejemplo (avanzado):

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

Más sobre el truco sys.path (2004)

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