Sublime Text 插件开发
我开发了一个命令行的Python应用程序,可以把带有语法高亮的源文件(用pygments实现)保存为Evernote的笔记,这个功能运行得很好。
现在我想把这个应用集成到Sublime Text 2的插件中,但我的应用需要一些Python模块才能正常工作(比如Evernote的SDK和pygments库)。项目的结构如下:
Package
|
---My_Plugin
|
-----evernote/
|
-----pygments/
|
myplugin_main.py
我尝试按照以下方式引入这些模块:
import sys, os
sys.path.append(os.path.abspath(os.path.dirname(__file__))+"/evernote")
sys.path.append(os.path.abspath(os.path.dirname(__file__))+"/pygments")
from evernote.api.client import EvernoteClient
import evernote.edam.type.ttypes as Types
import evernote.edam.notestore.NoteStore as NoteStore
import evernote.edam.userstore.UserStore as UserStore
但是我在使用这些外部模块时遇到了很多问题;我不明白为什么应用似乎看不到这些模块。
从Sublime的控制台来看,当我尝试保存时,会收到类似这样的错误信息:
Reloading plugin /home/sergioska/.config/sublime-text-2/Packages/evernote-sublime-plugin/ever.py
Traceback (most recent call last):
File "./sublime_plugin.py", line 62, in reload_plugin
File "./ever.py", line 3, in <module>
from evercode import EverCode
File "./evercode.py", line 7, in <module>
from evernote.api.client import EvernoteClient
File "/home/sergioska/.config/sublime-text-2/Packages/evernote-sublime-plugin/evernote/evernote/api/client.py", line 5, in <module>
import oauth2 as oauth
File "./oauth2/__init__.py", line 32, in <module>
import httplib2
File "./httplib2/__init__.py", line 915, in <module>
class HTTPSConnectionWithTimeout(httplib.HTTPSConnection):
AttributeError: 'module' object has no attribute 'HTTPSConnection'
当然,我也尝试像上面说的那样添加oauth2和httplib2,但还是没有用。
我该怎么做才能解决这个问题呢?
1 个回答
1
关于你遇到的错误,可能和这个问题类似吧?在CentOS 5.2上,Python 2.6缺少HTTPSConnection模块
关于Sublime 2的插件,我在GitHub上找到了这个:https://github.com/jamiesun/SublimeEvernote
我把它复制了一份,并更新成了不需要OAuth的版本,使用了Evernote的SDK:https://github.com/rekotan/SublimeEvernote
以上这些可能会帮助你自己构建一个插件。