首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行时添加python脚本

在运行时添加python脚本
EN

Stack Overflow用户
提问于 2010-10-28 05:35:59
回答 3查看 3.4K关注 0票数 2

我开始使用python并在一个项目中工作,我希望能够做的一件事就是在运行时动态下载并运行脚本。

一般的想法是能够连接到服务器,按需下载python脚本,并运行刚刚下载的脚本,而不必重新启动程序或将特定脚本硬编码到程序中。

我正在使用的程序使用Python编写脚本和执行,使用C++编写渲染和数学等其他代码。

我希望能够使用python来运行从服务器下载的脚本(例如用户生成的内容)。

我想知道这是否可能,或者我是否应该在这种情况下使用另一种脚本语言(可能是LUA)?

谢谢,Th3flyboy

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-28 05:38:38

你绝对可以做到。使用urllib下载或生成脚本,然后将其导入。只要你把脚本下载到你的PYTHONPATH上,它每次都会工作得很棒。

例如:

代码语言:javascript
运行
复制
from urllib import urlretrieve
urlretrieve('http://www.mysite.com/myscript.py', '/home/me/script.py')
import script

您还可以自己从模板生成脚本,从联机(可能是以xml格式或从数据库)提取数据并使用Python的文本处理功能进行必要的调整。

票数 1
EN

Stack Overflow用户

发布于 2010-10-28 05:43:20

这是很有可能的,尽管非常不安全。

您需要使用urllib2.urlopen下载,然后使用exec执行结果。由于安全方面的影响,我不愿进一步解释。

编辑:有关安全问题的说明。

在Python (CPython)中,目前没有办法拥有sandbox。结果是,任何不受信任的代码都可以访问Python在您的机器上(针对特定用户)拥有的所有功能。这可以通过使用专业用户和更好的操作系统级解决方案来部分解决。然而,它们是复杂的。

沙箱的一个例子是Java限制applet完全访问机器的方式。

Lua在游戏编程中经常被使用。著名的例子是World of Warcraft。其中一个主要原因是它可以是sandboxed。决定允许不受信任的代码的功能并不简单,但至少可以比Python更容易地保护它。

票数 1
EN

Stack Overflow用户

发布于 2010-10-28 05:41:39

任何允许运行外部脚本的编程语言都应该能够完成您的工作。这实际上意味着所有的语言。几乎所有的动态语言都可以。

使用python,有许多方法可以连接到服务器并获取url。对于执行,您可以使用子进程模块

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4037913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档