简 介: 测试与完成了基于编写的python小程序“ais”,可以直接直接将TEASOFT中的编辑的python程序通过Windows剪切板发送到AI Studio,自动运行。通过这种方式可以加快AI Studio 程序的开发和测试。

关键词AIStudioais

#mermaid-svg-Ydpdixuq7ycwA8Aq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .error-icon{fill:#552222;}#mermaid-svg-Ydpdixuq7ycwA8Aq .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Ydpdixuq7ycwA8Aq .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .marker.cross{stroke:#333333;}#mermaid-svg-Ydpdixuq7ycwA8Aq svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .cluster-label text{fill:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .cluster-label span{color:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .label text,#mermaid-svg-Ydpdixuq7ycwA8Aq span{fill:#333;color:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .node rect,#mermaid-svg-Ydpdixuq7ycwA8Aq .node circle,#mermaid-svg-Ydpdixuq7ycwA8Aq .node ellipse,#mermaid-svg-Ydpdixuq7ycwA8Aq .node polygon,#mermaid-svg-Ydpdixuq7ycwA8Aq .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .node .label{text-align:center;}#mermaid-svg-Ydpdixuq7ycwA8Aq .node.clickable{cursor:pointer;}#mermaid-svg-Ydpdixuq7ycwA8Aq .arrowheadPath{fill:#333333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Ydpdixuq7ycwA8Aq .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Ydpdixuq7ycwA8Aq .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Ydpdixuq7ycwA8Aq .cluster text{fill:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq .cluster span{color:#333;}#mermaid-svg-Ydpdixuq7ycwA8Aq div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Ydpdixuq7ycwA8Aq :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

AI Studio
目 录
Contents
从TEASOFT到
AI Studio
测试BMLCodelab
Notebook
AIS程序
远程读取文件
浏览器打开文件
刷新与拷贝
总 结

§01 AI Studio


  在 在AI Studio初步建立项目 —— 第一次尝试 初步测试了在AI Studio进行人工智能Python环境的建立。可以看到在Notebook环境下可以实现最方便的交互式程序开发。

▲ 图1.1 AI Studio 终端窗口开发环境

一、从TEASOFT到AI Studio

1、AI 终端操作

  在AI Studio终端操作,就如同在Linux系统的远程终端对于服务器进行操作一样。可以使用:

  • viedit:命令完成源文件的编译;
  • python:命令执行Python程序;

▲ 图1.1.1 AI Studio终端开发界面

2、终端运行程序

  下面程序主要完成:

  • Windows TEASOFT编写的Python程序,拷贝Clipboard
  • AI Studio 打开VI 编辑器,将Clipboard中的程序粘贴到VI中;
  • 存盘,并执行Python运行该程序;
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# AIS.PY                       -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================
from head import *
import pyautogui
#------------------------------------------------------------
AIStudio_Title = 'BML CodeLab'
string = tspstring2text('aise')
if len(string) > 0: AIStudio_Title = string
filename = 'test.py'
saveonlyflag = 0
outfile = ""
#------------------------------------------------------------
tspcopyclipboard()
filelines = clipboard.paste().split('\r\n')
proclines = []
for l in filelines:if l.find('from head import *')     >= 0:id = l.find('#>')if id > 0:outfile = l[id+1:]l = ''if l.find('from headm import *')    >= 0:id = l.find('#>')if id > 0:outfile = l[id+1:]l = ''l = l.replace('printf', 'print')proclines.append(l)
filelines = '\n'.join(proclines)
#clipboard.copy(filelines)
#------------------------------------------------------------
editfile = tspgeteditfile()
editfile = os.path.basename(editfile).split('.')[0] + '.py'
#------------------------------------------------------------
for s in sys.argv[1:]:if s[0] == '>':saveonlyflag = 1if len(s[1:]) > 0:editfile = s[1:] + '.py'elif s[0] == ':':AIStudio_Title = s[1:]
#------------------------------------------------------------
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click((rect[0]+rect[2])//2, (rect[1]+rect[3])//2)
#------------------------------------------------------------
def pastefile(filename):
#    tspsendwindowkey(AIStudio_Title, "rm %s\r"%filename, noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "vi %s\r"%filename, noreturn=1)clipboard.copy('rm %s\nvi %s\n'%(filename, filename))tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)clipboard.copy(filelines)
#    time.sleep(.1)tspsendwindowkey(AIStudio_Title, "i", noreturn=1)tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)tspsendwindowkey(AIStudio_Title, "%c"%27, noreturn=1)tspsendwindowkey(AIStudio_Title, ":wq\r", noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "\r", noreturn=1)
def runfile(filename):
#    tspsendwindowkey(AIStudio_Title, "clear\r", noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "python %s %s\r"%(filename, outfile), noreturn=1)clipboard.copy('clear\npython %s %s\n'%(filename, outfile))tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
#------------------------------------------------------------
pastefile(editfile)
if saveonlyflag == 0:
#    time.sleep(.1)runfile(editfile)
#------------------------------------------------------------
printf('\a')
tspfocuswindow("TEASOFT:1")
#------------------------------------------------------------
#        END OF FILE : AIS.PY
#============================================================

  上面程序还需要对原始程序进行如下处理:

  • 将原来程序中 printf 更换成 print
  • 将 原有的 from head import 一行去除;

3、测试程序

(1)测试程序

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================from headm import *import time, math, clipboard, random
from numpy import *for i in range(10):printf('*'*i)#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

(2)运行结果

▲ 图1.1.2 自动执行过程

  可以看到该程序完成了从 TEASOFT 编写程序到AI Studio的环境的源文件的传送。

二、测试BMLCodelab

  在 BMLCodeLab中包括有很多可也是用的公共代码片段库,方便面进行使用和操作。下面测试在这个环境下使用ais工具结果。

▲ 图1.2.1 BML CodeLab 环境

  经过测试,执行效果与AI Studio经典环境是一样的。

▲ 图1.2.2 执行效果与AI Studio经典环境是一样的

§02 Notebook


  在上面的终端内,无法使用matplotlib函数。但是,使用notebook可以使用该函数。因此,将上面的ais程序进行改造,使其能够是适应与notebook中运行程序。

一、AIS程序

  下面改进的ais程序,会根据BML CodeLab中是否包含 ipynb 字符,确定后面执行的环境是出notebook,还是终端。

1、代码

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# AIS.PY                       -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================
from head import *
import pyautogui
#------------------------------------------------------------
AIStudio_Title = 'BML CodeLab'
string = tspstring2text('aise')
if len(string) > 0: AIStudio_Title = string
filename = 'test.py'
saveonlyflag = 0
outfile = ""
notebookflag = 0
#------------------------------------------------------------
title = tspgetwindowtitle()
for t in title:if t.find('ipynb') >= 0:notebookflag = 1break
#------------------------------------------------------------
tspcopyclipboard()
filelines = clipboard.paste().split('\r\n')
proclines = []
for l in filelines:if l.find('from head import *')     >= 0:id = l.find('#>')if id > 0:outfile = l[id+1:]l = ''if l.find('from headm import *')    >= 0:id = l.find('#>')if id > 0:outfile = l[id+1:]l = 'import matplotlib.pyplot as plt\nfrom numpy import *\nimport math,random,time'l = l.replace('printf', 'print')proclines.append(l)
filelines = '\n'.join(proclines)
#clipboard.copy(filelines)
#------------------------------------------------------------
editfile = tspgeteditfile()
editfile = os.path.basename(editfile).split('.')[0] + '.py'
#------------------------------------------------------------
for s in sys.argv[1:]:if s[0] == '>':saveonlyflag = 1if len(s[1:]) > 0:editfile = s[1:] + '.py'elif s[0] == ':':AIStudio_Title = s[1:]
#------------------------------------------------------------
if notebookflag == 0:rect = tspgetwindowrect(AIStudio_Title)pyautogui.click((rect[0]+rect[2])//2, (rect[1]+rect[3])//2)
else:rect = tspgetwindowrect(AIStudio_Title)pyautogui.click(rect[0]+385, (rect[1]+rect[3])//2)
#------------------------------------------------------------
def pastefile(filename):
#    tspsendwindowkey(AIStudio_Title, "rm %s\r"%filename, noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "vi %s\r"%filename, noreturn=1)clipboard.copy('rm %s\nvi %s\n'%(filename, filename))tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)clipboard.copy(filelines)
#    time.sleep(.1)tspsendwindowkey(AIStudio_Title, "i", noreturn=1)tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)tspsendwindowkey(AIStudio_Title, "%c"%27, noreturn=1)tspsendwindowkey(AIStudio_Title, ":wq\r", noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "\r", noreturn=1)
def runfile(filename):
#    tspsendwindowkey(AIStudio_Title, "clear\r", noreturn=1)
#    tspsendwindowkey(AIStudio_Title, "python %s %s\r"%(filename, outfile), noreturn=1)clipboard.copy('clear\npython %s %s\n'%(filename, outfile))tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
#------------------------------------------------------------
def pastenotebook(filename, runflag=1):tspsendwindowkey(AIStudio_Title, "a", control=1, noreturn=1)tspsendwindowkey(AIStudio_Title, "dd", noreturn=1)clipboard.copy(filelines)tspsendwindowkey(AIStudio_Title, "\r", shift=1,   noreturn=1)tspsendwindowkey(AIStudio_Title, "av", control=1, noreturn=1)tspsendwindowkey(AIStudio_Title, "\r", shift=1,   noreturn=1)
#------------------------------------------------------------
printf('\a')
if notebookflag == 0:pastefile(editfile)if saveonlyflag == 0:runfile(editfile)
else:pastenotebook(editfile)
tspfocuswindow("TEASOFT:1")
#------------------------------------------------------------
#        END OF FILE : AIS.PY
#============================================================

2、测试

(1)测试代码

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-12-08
#
# Note:
#============================================================
from headm import *
#------------------------------------------------------------
for i in range(10):printf('*'*i)
filename = 'outtext.txt'
with open(filename, 'w') as f:for i in range(100):f.write('hellohello\n')
#------------------------------------------------------------
t = linspace(0, 100, 1000)
plt.plot(t, sin(t/10))
plt.xlabel("X")
plt.ylabel("Y")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

(2)测试结果

▲ 图2.1.1 在notebook中输出的matplotlib

§03 远程读取文件


一、浏览器打开文件

  执行程序会将运行结果存储在局部 text文件中。该文件可以有浏览器打开。

▲ 图3.1 通过新的浏览器打开TEXT文件

  在打开的浏览器的Title中包含有文件的名称,这为寻找该窗口提供了帮助。

二、刷新与拷贝

  利用Chrome浏览器的“F5”刷新,可以实时更新文件内容,同时在利用选择拷贝可以将结果读取到Windows。

※ 总  结 ※


  测试与完成了基于编写的python小程序“ais”,可以直接直接将TEASOFT中的编辑的python程序通过Windows剪切板发送到AI Studio,自动运行。

  通过这种方式可以加快AI Studio 程序的开发和测试。


■ 相关文献链接:

  • 在AI Studio初步建立项目 —— 第一次尝试

● 相关图表链接:

  • 图1.1 AI Studio 终端窗口开发环境
  • 图1.1.1 AI Studio终端开发界面
  • 图1.1.2 自动执行过程
  • 图1.2.1 BML CodeLab 环境
  • 图1.2.2 执行效果与AI Studio经典环境是一样的
  • 图2.1.1 在notebook中输出的matplotlib
  • 图3.1 通过新的浏览器打开TEXT文件

搭建AI Studio 中Python开发环境相关推荐

  1. Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作

    Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作 一.写在前面 1.1 明确目标:搭建一个完整的Python开发环境 1.2 前置工作 二.Doom ...

  2. AI基础:Python开发环境设置和小技巧

    0.导语 本文总结了Windows下Python环境的安装,包括Anaconda.Jupyter notebook和Pycharm的安装和基本使用技巧,方便初学者搭建Python环境.这个是AI基础的 ...

  3. 使用virtualenv搭建一个干净的python开发环境

    简介 有时候在开发程序的时候会碰到一个问题,就是当我同时在开发两个应用,且两个应用需要的模块是相同的,但是版本不同,如果用pip安装的话,同时只能安装这个模块一个的版本. 这个时候就非常尴尬了,但是山 ...

  4. vs code配置python环境mac_Mac下搭建基于VSCode的Python开发环境

    首先需要做的准备 1,安装VSCode 2,安装Python VSCode安装Python扩展插件 在VSCode的扩展列表,搜索Python,安装即可.如图: VsCode的Python插件 配置P ...

  5. Eclipse+Pydev搭建Python开发环境教程

    Eclipse+Pydev搭建Python开发环境教程 Eclipse+Pydev搭建Python开发环境 PyDev简介 准备文件 Jdk配置,1.8版本 python-2.7.18安装 Eclip ...

  6. 36.在Ubuntu上打造方便好用的Python开发环境

    文章目录 安装oh-my-zsh 安装Powerline 配置Vim 插件管理器 安装插件 转载请注明原始出处:http://blog.csdn.net/a464057216/article/deta ...

  7. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  8. mac搭建python开发环境_Mac中基于Homebrew搭建python开发环境

    转移到mac上了.这里是在lion中搭建python开发环境的简单记录.这份记录不是一份step by step.而是事后写的记录,可能有记忆遗漏.如果有错误,请指正. 1.安装homebrew的准备 ...

  9. 在Eclipse中搭建Python开发环境之三新建python 提示django not found

    python 不是内部或外部命令 现在我假设你的python安装在C:\Python26目录下,设置环境变量方法如下: 方法一.我的电脑->属性->高级->环境变量->系统变量 ...

最新文章

  1. 介绍两个好玩的和Github相关的Chrome扩展
  2. win10 中redis client提示 ERR Client sent AUTH,but no password is set
  3. Linux下KVM的图形界面管理工具(virt-manager)(桌面版)
  4. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
  5. Photoshop剪切板故障修复
  6. [转贴]Integrating FrontPage and VS .NET
  7. 印度电工,真牛!上天入海,无所不能...
  8. C#中使用OpenGL(API)创建OpenGL渲染环境
  9. 宝塔添加多占点_宝塔面板启用WordPress多站点子域名、子目录
  10. 聊聊composer.lock
  11. ROS( C++ )订阅 robot 的 path 话题
  12. 虚拟机连接iso后挂载
  13. 小程序源码:独立后台带分销功能月老办事处交友盲盒-多玩法安装简单
  14. 使用Java模拟登录KINGOSOFT青果教务系统(湖北三峡职业技术学院)
  15. 2017-9-22 NOIP模拟赛[xxy][数论]
  16. docker ADD命令的用法
  17. wince 德赛西威2413_德赛西威NAV230凯立德2016春季专版C2134-C7M07-3921J0S
  18. Docker部署Django由浅入深系列(中): 双容器部署Django + Uwsgi + Nginx
  19. SpringBoot集成移动云MAS平台(SDK版本)
  20. 计算机技术包括云计算吗,云计算机技术有哪些

热门文章

  1. 由“递归遍历二叉树”引发的思考
  2. Docker安装mysql容器
  3. 23种设计模式之单例模式
  4. 九款让WordPress成为赚钱利器的广告插件
  5. Javascript 上课笔记
  6. 前端开发我为什么选择cordova
  7. org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found
  8. #linux进阶#归档压缩
  9. 点击Ehlib列标题的快速排序方法
  10. mac编译openresty报Undefined symbols for architecture x86_64