一种创建Python沙盒环境的方法及电子设备与流程

文档序号:17490627发布日期:2019-04-23 20:27阅读:348来源:国知局
一种创建Python沙盒环境的方法及电子设备与流程

本发明涉及计算机技术领域,尤其涉及一种创建python沙盒环境的方法及电子设备。



背景技术:

随着人工智能和大数据时代的来临,python这门动态语言以简洁的语法、丰富强大的社区以及强大的跨平台特性得到了工业界和学术界的一致认可,它作为人类与人工智能交流的语言得到了越来越多的青睐,加入到python开发和学习的人越来越多。在进行python开发时,通常要从安装和配置环境开始,然而这步产生的诸多问题影响了一部分人的使用热情。

具体地,python是跨平台语言,在解释执行python代码之前需要在各个平台安装好各自的运行环境,在配置环境的过程中由于各系统版本碎片化严重,经常会遇到安装和启动上的问题。这导致基于传统模式的python开发容易受到外部环境影响,不能保证一定可以运行,拖延了开发和生产的时间。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种创建python沙盒环境的方法及电子设备,旨在解决现有技术中python容易受到外部环境影响的问题。

本发明的技术方案如下:

一种创建python沙盒环境的方法,其中,包括步骤:

提取python的源代码;

对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中;

将所述python沙盒集成到开发环境中。

所述的创建python沙盒环境的方法,其中,对所述源代码进行可视化的组件编译的步骤具体包括:

使用visualstudio打开源代码中的解决方案文件;

再使用编译器来编译各功能。

所述的创建python沙盒环境的方法,其中,编译具体包括编译pythoncore组件和python组件。

所述的创建python沙盒环境的方法,其中,所述对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中的步骤中还包括:

将原生组件库、第三方库和动态链接库文件添加至所述python沙盒中。

所述的创建python沙盒环境的方法,其中,所述对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中的步骤中还包括:

为第三方库的管理目录配置映射文件,以建立第三方库的映射链接。

所述的创建python沙盒环境的方法,其中,将所述python沙盒集成到开发环境中的步骤具体包括:

对python沙盒进行打包,并且在打包时给予读写权限;

通过热更新的方式安装所述python沙盒。

所述的创建python沙盒环境的方法,其中,所述开发环境为windows系统。

一种电子设备,其中,包括:

处理器,适于实现各指令,以及

存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

提取python的源代码;

对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中;

将所述python沙盒集成到开发环境中。

一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的创建python沙盒环境的方法。

一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的创建python沙盒环境的方法。

有益效果:通过本发明,主动编译和构建一套隔离的、可移植的python沙盒运行环境,这样可将系统环境与运行环境进行隔离,使得python运行环境不依赖于系统,python只会受到内部状态的影响,避免出现外部运行环境的问题。

附图说明

图1为本发明一种创建python沙盒环境的方法较佳实施例的流程图。

图2为本发明一种电子设备较佳实施例的结构框图。

具体实施方式

本发明提供一种创建python沙盒环境的方法及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1为本发明一种创建python沙盒环境的方法较佳实施例的流程图,如图所示,其包括步骤:

s1、提取python的源代码;

s2、对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中;

s3、将所述python沙盒集成到开发环境中。

通过本发明,主动编译和构建一套隔离的、可移植的python沙盒运行环境,这样可将系统环境与运行环境进行隔离,使得python运行环境不依赖于系统,python只会受到内部状态的影响,避免出现外部运行环境的问题。

具体地,在所述步骤s1中,提取python的源代码。

具体可从python官网下载所需要的python版本的源代码,这是构建沙盒的基础。在这份源代码中会有对应版本的sln文件,sln文件是解决方案文件,其是用于给visualc++2015编译器构建的工程文件。

在sln文件中有python核心功能组件库、python二级功能库以及python外部引入库。外部引入库包括很多模块,比如_ssl库是负责请求https协议的。

具体地,外部引入库包括:

1.pylauncher,windows版本的python窗口启动器;

2._ssl库,允许python以https协议访问互联网内容的模块;

3.tcl/tk库,包括了一系列跨平台gui(图形化用户界面)功能。

在所述步骤s2中,对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中。

此步骤就是将源代码进行编译,从而得到python启动程序。其中的python启动程序就是python沙盒的核心。

进一步,对所述源代码进行可视化的组件编译的步骤具体包括:

使用visualstudio打开源代码中的解决方案文件;

再使用编译器来编译各功能。

首先打开visualstudio里面的对应功能打开源码包(源代码)里面的“.sln(解决方案文件)”,再运行相应命令使用visualc++2015编译器来编译各个功能。随后就可以在同级目录(如同级目录的win32目录下)找到可移植的python启动程序,即python.exe启动程序。

进一步,编译具体包括编译pythoncore组件和python组件。python的核心部分是python组件和pythoncore组件,这两个组件负责启动整个python解释器和运行环境。如果要构建最基础版本的python,只需要编译pythoncore和python这两个组件即可,点击编译之后等待编译器工作即可。

进一步,所述对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中的步骤中还包括:

将原生组件库、第三方库和动态链接库文件添加至所述python沙盒中。

其中的原生组件库是指在安装python时就默认已经安装好的模块,被称为“标准库”。python标准库是用python和c语言预先编写的模块,这些模块随着python解释器一起自动安装,该工具库非常强大,以至于标准库被认为属于python的自带装备,意思即python已经把大量日常所需的例行工作准备好了,只待导入。python标准库本身虽然不属于核心语言,却是python系统的标准组成部分,无论脚本运行在哪里,都可以用上这个库的工具,这就是python与其他语言的一个显著不同。

第三方库是指除了标准库可能还需要单独获取和安装一些第三方库,第三方库很多是对标准库的优化和再封装,一些第三方库本身就是大型系统,如numpy、django、vpython(是一套简单易用的三维图形库,使用它可以快速创建三维场景和动画),他们分别用于处理科学数值计算、网站构建、可视化。所以用户在实际应用过程中,不仅需要标准库,同时也需要第三方库提供支持。

动态链接库文件是系统开发中一种非常重要的跨语言协作方式。把python语言写成的算法编译成动态库,能够提供给其他语言调用,这能够在很大程度上提高算法的开发效率。

但是,虽然python可以调用其他语言生成的动态库,python作为一种脚本语言,本身是不能直接编译生成动态库的。为了生成动态库,可借助cython,将python脚本变成c语言文件。目前已经能够把python代码实现的功能,封装成动态库。然而,这个动态库无法在没有安装python的机器上面运行。事实上,python代码,通常需要很多依赖包才能运行。而且,每段代码需要的依赖包是不一样的。为了查找这些包,可采用另外一个工具pyinstaller。具体步骤如下:1、virtualenvenvpack#创建新的环境,python包依赖比较复杂,创建新环境可以减少最终引入的包;2、cdenvpack#进入目录;3、#复制run.py到这个目录,run.py运行需要的包,和最终dll需要的包是一样的;4、scripts\activate#激活并切换到virtualenv环境;5、pipinstallpyinstaller#安装打包工具pyinstaller;6、pipinstallnumpy#安装numpy等脚本需要的库,查看import;7、pyinstallerrun.py#打包命令;8、scripts\deactivate#打包成功后,使用命令取消激活环境;9、需要打包的文件在envpack\dist,包括很多.dll和.pyd文件,把这些文件和dll一起发布即可。

进一步,所述对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中的步骤中还包括:

为第三方库的管理目录配置映射文件,以建立第三方库的映射链接。

即为python的第三方库管理目录配置了.pth文件,它的作用是将其中列举的所有目录映射到python库的映射链接中,这样就可以将沙盒环境安装的所有第三方库统一管理起来。.pth文件是非常重要的,比如用户有多个python安装在电脑上,那么各自版本的python安装的库是分别在不同目录的,但是利用.pth文件引用所有的库存放目录,就可以直接访问任意安装好的库,赋予第三方库更加强的灵活性。

对于.pth文件,该文件的用法是:

首先xxx.pth文件里面会书写一些路径,一行一个。

将xxx.pth文件放在特定位置,则可以让python在加载模块时,读取xxx.pth中指定的路径。如此一来就可以很简便的书写import语句,且灵活控制自己写的模块了。例如:先将myproj的路径加入到myproj.pth文件中,再讲myproj.pth文件放置在__特定目录中__,然后再项目的代码中,无论哪个目录层级,都可以直接使用。

进一步,将所述python沙盒集成到开发环境中的步骤具体包括:

对python沙盒进行打包,并且在打包时给予读写权限;

通过热更新的方式安装所述python沙盒。

具体地,在配置表中将沙盒目录配置进去,相应的,需要为python沙盒在打包时给予读写权限,这样才能成功令它通过热更新的方式到达用户端。例如,一个项目是基于electron技术进行开发的,则需要在相应的yml配置表中将沙盒目录配置进去。

electron技术github的electron框架(以前叫做atomshell)允许使用html,css和javascript编写跨平台的桌面应用。它是io.js运行时的衍生,专注于桌面应用而不是web服务端。electron丰富的原生api使用户能够在页面中直接使用javascript获取原生的内容。

创建一个electron应用的所有步骤:1、创建一个项目文件夹;2、在cmd命令行窗口中,进入该项目文件夹,通过npminit命令创建electron应用所需的package.json文件;3、在项目文件夹下,通过npminstall–save-develectron-prebuilt命令安装项目所需的electron环境;4、在vscode中创建启动js脚本文件;5、在vscode中创建一个入口html页面;6、运行该项目,查看效果;7、将项目的运行命令与vscode编辑器整合;8、配置调试环境。

进一步,所述开发环境为windows系统。这是因为在配置python环境的过程中,由于windows系统版本碎片化严重,经常会遇到安装和启动上的问题。采用本发明的方法,可以在windows平台下主动编译和构建一套隔离的、可移植的python沙盒运行环境,使得python只会受到内部状态的影响,避免出现外部运行环境的问题。

本发明还提供一种电子设备10,如图2所示,其包括:

处理器110,适于实现各指令,以及

存储设备120,适于存储多条指令,所述指令适于由处理器110加载并执行:

提取python的源代码;

对所述源代码进行可视化的组件编译,得到可移植的python启动程序,并将所述python启动程序添加至python沙盒中;

将所述python沙盒集成到开发环境中。

所述处理器110可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、任何其它这种配置。

存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的创建python沙盒环境的方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行创建python沙盒环境的方法的各种功能应用以及数据处理,即实现上述方法实施例。

关于上述电子设备10的具体技术细节在前面的方法中已有详述,故不再赘述。

本发明还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的创建python沙盒环境的方法。

本发明还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的创建python沙盒环境的方法。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1