|
楼主 =高山=说: NVDA插件开发:导入第三方模块
找了很久终于找到了,记下笔记!
#添加路径再导入
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'modules'))
import sqlite3
del sys.path [0]
--------
来自论坛的中文翻译:
如何将外部Python包导入全局插件脚本
贾马尔·马祖瑞<贾马尔@ ...>
NVDA安装中是否包含sqlite3标准模块?我通过使用带有sqlite3模块的Python db API添加了一些数据库存储功能来增强了我的脚本。但是,脚本解释器无法识别导入命令。
……
贾马尔
詹姆斯·斯科尔斯
在附加组件的globalPlugins目录中,创建一个目录来保存您的额外依赖关系。您可以随心所欲地调用它,但是在此示例中,我将其命名为“模块”。在modules目录中,粘贴c:\ python27 \ lib中的sqlite3目录,以及c:\ python27 \ dlls中的_sqlite3.pyd和sqlite3.dll文件。.pyd和.dll文件应位于modules目录的根目录下,而不是sqlite文件夹内。
接下来,在您的主要.py文件中,使用以下代码:
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'modules'))
import sqlite3
del sys.path [0]
------------
sqlite3我也 不知道要怎么用,按照上面没有报错,应该就是导入成功了!
示例:
有一个模块里有一个获取乘法口诀的方法,要调用这个方法。
#允许从开发者实验目录加载自定义代码
NVDA菜单->选项(P)子菜单p设置(S)...s高级,13之13项,
高级属性页警告!,我知道更改这些设置可能会导致NVDA无法正常工作。复选框已选中
允许从开发者实验目录加载自定义代码复选框已选中
应用(A)按钮Alt+a
打开开发者实验目录按钮
#
在globalPlugins里创建libs文件夹,再在里面创建xmokuai.py
globalPlugins\libs\xmokuai.py代码:
def getChengFaKouQue():
lists=[[b,a,b*a] for a in range(1,10) for b in range(1,a+1)]
dict={1:'一',2:'二',3:'三',4:'四',5:'五',6:'六',7:'七',8:'八',9:'九',10:'十'}
s=''
for list in lists:
a,b=dict[list[0]],dict[list[1]]
v=list[2]
if v<10: v='得,'+dict[v%10] #小于10
elif v%10==0: v=dict[v//10]+',十' # 十的倍数
elif v//10==1: v='十,'+dict[v%10] #11,12,13,
else : v=dict[v//10]+',十,'+dict[v%10] #大于20
s=s+a+','+b+'。'+str(v)+'。'
return s
#
在globalPlugins里创建importDemo.py
输入代码:
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'libs'))
import xmokuai
del sys.path [0]
from scriptHandler import script
import ui
import globalPluginHandler
class GlobalPlugin(globalPluginHandler.GlobalPlugin):
@script(gesture="kb:control+windows+alt+numpad1")
def script_peiChengFaKouQue(self,gesture):
cfkq=xmokuai.getChengFaKouQue()
ui.message(cfkq)
当你按下快捷键时,NVDA会朗读出熟悉又陌生的乘法口诀!
|
|