Ich schreibe ein erhabenes Text-2-Plugin, das ein Modul SEAPI.py verwendet, das selbst die requests module importiert.Wie man Python-Pakete von Drittanbietern in Sublime Text 2-Plugins einbindet
Da sublime text 2 seinen eigenen eingebetteten Python-Interpreter verwendet, sieht er nicht, dass das Anfrage-Modul in meinem ubuntu-Rechner installiert ist (ich bekomme den folgenden Fehler: ImportError: Kein Modul namens Requests).
Die beste Lösung, die ich bisher finden konnte, war, das Modul 'requests' (das gesamte Verzeichnis der Dateien) von /usr/lib/python2.7/dist-packages/requests in mein Plugin-Verzeichnis in den Textpaketen zu kopieren Richt. Aber danach heißt es, dass es das Modul 'urllib3' nicht finden kann.
Gibt es eine bessere Möglichkeit, das Anfrage-Modul zu importieren, so dass ich nicht alle Dateien in mein Plugin-Verzeichnis kopieren muss?
Der aktuelle Code verwende ich wie folgt:
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
...
Edit: Die gewählte Antwort ist richtig und behebt meine Hauptfrage, aber ein anderes Problem besteht bei der Verwendung der aktuellen Version von 'Anfragen' mit dem eingebetteten Sublime-Text t 2 Dolmetscher. ST2 Python fehlt verschiedene Module, die in regulären 2.7 Python (wie "Fileio") existieren.
Ich habe es gelöst mit der Verwendung des Moduls 'Anfragen' von hier: https://github.com/bgreenlee/sublime-github
Und ich hatte die 'urllib3/response.py' Datei auf diese bearbeiten:
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
danke für die schnelle antwort. Ich habe es versucht - sys.path.append (os.path.join (os.path.dirname (__ file__), "/usr/lib/python2.7/dist-packages/")). Es sieht sowohl das Modul 'Anfragen' als auch das Modul 'urllib3' aus, die mit pip installiert wurden. Aber jetzt hat es die folgende Fehler - Datei "/usr/lib/python2.7/dist-packages/urllib3/filepost.py", Zeile 15, in von io Import BytesIO Datei "\ io.py." Zeile 63, in ImportError: Kein Modul namens _fileio –
Ich habe meine Frage mit einer Lösung für dieses Problem bearbeitet. Danke nochmal Mikko! –
Die Informationen in dieser Antwort sind unglaublich wichtig für die Erstellung von Sublime Text Plugins. Es sollte wirklich in der offiziellen Dokumentation sein ... – zakdances