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)