Python kyLink.py'})
不过,您需要将包拆分为两个文件。一个文件,描述您的软件包和升华内部所需的命令。另一个文件(应该在包目录的子目录中——这样升华就不会将其作为插件处理)包含其余代码。 第二个文件是导入Sublime内部Python中未包含的Python模块的位置。 此外,还需要找到一种方法,将要使用的选择或字符串/url传输到第二个脚本 您可以在我的Sublime软件包中查看我是如何做到这一点的。错误:Python kyLink.py'}),python,python-3.x,sublimetext3,sublimetext,sublime-text-plugin,Python,Python 3.x,Sublimetext3,Sublimetext,Sublime Text Plugin,不过,您需要将包拆分为两个文件。一个文件,描述您的软件包和升华内部所需的命令。另一个文件(应该在包目录的子目录中——这样升华就不会将其作为插件处理)包含其余代码。 第二个文件是导入Sublime内部Python中未包含的Python模块的位置。 此外,还需要找到一种方法,将要使用的选择或字符串/url传输到第二个脚本 您可以在我的Sublime软件包中查看我是如何做到这一点的。错误: bs4.FeatureNotFound: Couldn't find a tree builder with t
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
很可能是因为Sublime Text发现作为全局Python环境的一部分安装的lxml
,该环境是为不同于ST使用的Python版本编译的,因此无法加载它
我们希望ST找到您在问题中链接到的sublime lxml
依赖项。你可能会问:“为什么它找错了?”。很难说清楚,但我认为-ST出于某种原因看到的sys.path
包含了所有的全局Python包。默认情况下,ST应仅使用其可执行文件所在的文件夹和ST数据目录中的Packages文件夹。例如,在我的系统上,执行import sys;ST控制台中的sys.path
为我提供:
[
'C:\\Program Files\\Sublime Text 3',
'C:\\Program Files\\Sublime Text 3/python3.3.zip',
'C:\\Users\\Keith\\AppData\\Roaming\\Sublime Text 3\\Packages',
'C:\\Users\\Keith\\AppData\\Roaming\\SUBLIM~1\\Packages\\lxml\\ST3_WI~2'
]
i、 e.没有站点包
文件夹
因此,解决办法是:
a。您可以尝试卸载系统范围的lxml
包,这样ST将只找到sublime lxml
依赖项包,但实际上这只是一个临时措施。最好是:
B调整ST正在使用的path环境变量(项目的顺序)。(即,删除对网站包的所有引用,或至少将其移动到ST文件夹之后。)
选项B不应该影响任何其他ST插件,因为它们也会遇到同样的问题。我怀疑其他包更改了ST使用的路径,但如果不搜索所有包,可能很难找到哪一个。使用构建系统时,用于这些系统的路径与插件加载其模块时使用的路径截然不同,因此构建系统也应不受此“修复”的影响。是的,插件可以与Python模块一起工作,用户可以全局安装。您没有义务向Sublime文本插件引入模块。
问题
1.Python 3.3兼容性
2018年初:
插件中使用的所有全局模块必须与Python 3.3兼容。
1.1. 论证
1.1.1. 升华文本系统路径顺序
例如,我添加到Default.sublime包
archive文件0000.py
。来自Default.sublime包的模块由sublime Text start启动
0000.py
内容:
导入系统
sys.path.append('C:\\Python36')
sys.path.append('C:\\Python36\\Python36.zip')
sys.path.append('C:\\Python36\\DLLs')
sys.path.append('C:\\Python36\\lib')
sys.path.append('C:\\Python36\\lib\\site packages')
其中路径-我的全局sys.path
导入系统;搜索路径
['''C:\\Python36','C:\\Python36\\Python36.zip','C:\\Python36\\dll','C:\\Python36\\lib','C:\\Python36\\lib\\site packages']
我重新开始崇高的文本→ 我在控制台中看到:
DPI比例:1
启动,版本:3143 windows x64通道:稳定
可执行文件:/D/Sublime Text Build 3143 x64用于调试/Sublime_Text.exe
工作总监:/D/克里斯汀塔
包路径:/D/Sublime Text Build 3143 x64用于调试/数据/包
状态路径:/D/Sublime Text Build 3143 x64用于调试/数据/本地
zip路径:/D/Sublime Text Build 3143 x64用于调试/软件包
zip路径:/D/Sublime Text Build 3143 x64用于调试/数据/安装的软件包
被忽略的包装:[“水蟒”,“年份”]
会话前恢复时间:0.458819
启动时间:0.493818
首次涂漆时间:0.506818
重新加载插件Default.0000
重新加载插件Default.auto_indent_标记
重新加载插件Default.block
#等等
导入系统;搜索路径
['D:\\Sublime Text Build 3143 x64 For Debug','D:\\Sublime Text Build 3143 x64 For Debug\\python3.3.zip','D:\\Sublime Text Build 3143 x64 For Debug\\Data\\Lib\\python3.3','D:\\Sublime Text Build 3143 x64 For Debug\\Data\\Packages','C:\\Python36\\Python36.zip','C:\\Python36\\Python36\\DLLs','C:\\Python36\\Lib\\C:\\Python36\\site-p包装']
来自内部环境的路径在前面,即全局环境中的路径。我不知道,我怎样才能改变它
1.1.2. Python3.6模块
例如,我想在我的插件PyPI模块中使用。它与Python3.6兼容,但是
我按照上面的小节插入文件0000.py
→ 我创建了pluginSashaGSearch.py
,它的内容:
导入升华插件
从gsearch.googlesearch导入搜索
类GoogleSearchCommand(升华插件.TextCommand):
def运行(自我,编辑):
结果=搜索('kristinitaluckylife',num_results=1)
r=结果[0][1]
印刷品(r)
我重新开始崇高的文本→ 我得到,好像0000.py
没有实现
1.2. 2018年初情况
见Sublime文本论坛讨论:
- ,
2.环境变量 如果您知道,可能不添加新的环境变量,请回答 2.1. 插件代码 您需要在PC上创建环境变量,其中value-path to
site packages
文件夹。例如,我将其命名为PYTHONPACKAGES
:
您需要添加到代码行中,如下所示:
#PYTHONPACKAGES路径:
# https://stackoverflow.com/a/4907053/5951529
#禁用重复路径:
# https://stacko
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
[
'C:\\Program Files\\Sublime Text 3',
'C:\\Program Files\\Sublime Text 3/python3.3.zip',
'C:\\Users\\Keith\\AppData\\Roaming\\Sublime Text 3\\Packages',
'C:\\Users\\Keith\\AppData\\Roaming\\SUBLIM~1\\Packages\\lxml\\ST3_WI~2'
]