第一部分 在SublimeText3中运行虚拟环境
最近在使用snap7做上位画面,在PC上选用ST3作为编辑器。
python使用内置库“venv”创建虚拟环境
python -m venv xxxx
xxxx–即为虚拟环境的名称
在sublimetext3中需要配置json文件才能在使用ctrl b的时候运行虚拟环境。
命令如下:
"cmd": ["XXXXXXXXXX","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
配置代码(XXXXXXXXXX代表Python安装路径,比如 D:/Development Tools/Python/python.exe)
点击“tools”-“build system”-选择“new build system”,粘贴如上内容,点击保存。
这里需要注意,保存的时候,所有的设置都不要改变,包括名称都要使用默认的“untitled”,否则列表内不会显示新添加的系统。
import snap7
plc = snap7.client.Client()
plc.connect('192.168.1.11',0,1)
以上json文件保存后,导入snap7库,并没有提示错误,但是当创建Client()对象的实例时出现了无法找到sanp7库的异常提示。所以上述json配置的只是python的exe文件路径,而snap7运行的时候需要将自身所在的位置也包含到环境变量中,才能正常调用。
最后的json文件配置如下:文件名为“untitled”
"path":"C:\\Documents and Settings\\a\\python\\Scripts",
"cmd": ["C:\\Documents and Settings\\a\\python\\Scripts\\python.exe","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
至此,配置成功,使用snap7可以成功连接PLC。
第二部分 针对sublimetext插件的一些问题
软件好用,但是缺陷也很大,典型的就是不支持input()函数。
在此需要一个插件sublimeREPL,他能在一个新窗口执行input()函数。
想要使用这个插件,也不是那么容易的,在安装过程中发现了若干问题,记录如下:
一、通用的安装方法install package control
之前使用ST3的时候想要安装插件,只要ctrl shift P输入install package control,完毕后只要搜索REPL找到对应插件安装即可完成,非常方便。但是这次出现了一个极端问题,就是不能正常安装。在此找到了几个方法,通常是修改json文件中的channel值:
"channels":
[
"http://cst.stu.126.net/u/json/cms/channel_v3.json"
]
这一步修改完毕后,就可以搜索到ST3支持的插件,但是依然不能下载。
原因可能是被墙或者网速慢造成的。
那么之前修改channel值也变的没有意义了。
此时可以打开控制台看一下下载过程的错误提示,下载该插件的时候,有如下错误提示:
Package Control: Error downloading package.
HTTP exception InvalidCertificateException (Host codeload.github.com returned an invalid certificate
([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)))
downloading
https://codeload.github.com/wuub/SublimeREPL/zip/2.1.1.
其中最后的网址就是这个插件的地址,可以复制到浏览器直接下载过来。
下载到本地之后执行解压缩出一个名为“SublimeREPL-2.1.2”的文件夹,然后一定要注意重命名位“SublimeREPL”否则该插件依然不能正常运行,点击“首选项”-“浏览包”,会打开一个文件夹,把刚才的文件夹拷贝到这里就可以了。
之后tools菜单下就可以出现SublimeREPL插件的名字,
tools-SublimeREPL-python-python-Python Run current file就可以执行对应的py文件。
此时出现了第二个问题
二、SublimeREPL同样需要配置python运行环境
插件运行使用的是系统默认的环境,就是主python程序,二不是venv创建的虚拟环境,需要配置该插件的运行环境才能正常运行。
具体步骤如下:
1.找到安装包位置,打开文件SublimeREPL/config/Python/Main.sublime-menu
2. 在cmd项修改第一个元素,即你的python命令文件位置,这个cmd选项对应插件运行python的选项。选错了的话是无法正常运行的。
每次运行的时候都要点菜单选好几次,太麻烦了,这又引申出了第三个问题:
三、绑定快捷键
“首选项”-“键绑定”,写入如下代码:
{
"keys": ["f5"],
"caption": "SublimeREPL: Python - RUN current file",
"command": "run_existing_window_command",
"args": {
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}
}
此时能够正常弹出窗口,但是当连接PLC的时候,弹出异常提示没有找到snap7库,可知运行环境有问题。
snap7.snap7exceptions.Snap7Exception: can't find snap7 library. If installed, try running ldconfig
此时需要在插件的user配置一下运行环境:
“首选项"→"插件设置"→"SublimeREPL"→"Settings - User”,添加以下内容
{
"default_extend_env": {"PATH": "{PATH};C:\\Documents and Settings\\a\\python\\Scripts\\"}
}
到这里ST3配置完毕,基本能用了。
总结一下就是安装包的时候,如果能直接安装那是最好,如果不能正常安装,需要调用控制台找到对应的网址下载,然后解压缩,放到包管理的文件夹来完成安装。
安装完毕后还需要配置json文件,
1)是快捷键的绑定,不然会很麻烦。
2)是配置python.exe文件的位置,这个文件在插件安装包的config文件夹里
3)是配置snap7依赖的环境,这个需要“首选项”-“包设置”-“SublimeREPL”-“Settings - User”里再配置一下。
第三部分 配置anaconda
使用同样的方法下载anaconda
https://codeload.github.com/DamnWidget/anaconda/zip/v1.4.12
解压后同样将文件名“anaconda-1.4.12.zip”重命名为“anaconda”否则不能正常工作
安装完毕后,所有原来的代码都带有白色框说明插件开始工作。同时也开始有代码补全和提示功能
Preferences-package Setting-Anaconda-Settings-Default中修改
"python_interpreter":"C:\\Documents and Settings\\a\\python\\Scripts\\python.exe"
另外需要对Preferences-package Setting-Anaconda-Settings-Users如下设置
{
"python_interpreter":"C:\\Documents and Settings\\a\\python\\Scripts\\python.exe",
"swallow_startup_errors":true,
"suppress_word_completions": true,
"suppress_explicit_completions": true,
"complete_parameters": true,
"complete_all_parameters": false,
"anaconda_linting":false
}
这样烦人的白框就没有了
2020.12.28日更新
之前安装anaconda的方法已经翻车,具体表现为输入模块之后用“.”无法弹出该模块内的函数,第二运行的时候直接卡死。
再次打开install package control
在弹出的窗口输入anaconda
会出现这个包所在的网址,直接输入这个网址
http://damnwidget.github.io/anaconda/
弹出的这个网址才是正根,之前那个网址下过来的包是不能正常工作的。
在这个网页里一部分介绍手动安装anaconda包,包的地址为:
https://codeload.github.com/DamnWidget/anaconda/tar.gz/v2.1.14
下载后放到同样的地址后,一切正常了。