社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

把Python当作Shell使用:Xonsh

Python程序员 • 5 年前 • 483 次点击  

一直都很好奇,Python可否作为Shell使用?

Shell语言对于互动式应用来讲很有用。但是,它通常需要做出不能同时作为编程语言使用的取舍。有时候,在写Shell脚本时,这却是必须的。

如果你的Shell可以理解一个更具扩展性的编程语言,情况会不会不一样呢?比如说,Python?

让我们进入Xonsh。

安装Xonsh和创建一个虚拟环境一样简单。运行pip install xonsh[ptk,linux],然后再运行xonsh。

首先,你可能奇怪为什么你的Python Shell有一个奇怪的提示符:

很好的计算器!

我们也可以调用其它函数:

但是,我们仍然可以把他当作一个常规Shell来使用:

我们甚至可以混在一起使用:

通过使用提示工具包程序,Xonsh可以支持Shell命令和Python表达式的自动完成功能。自动完成功能可以提供提示,显示可能的完整命令和下拉提示。

它也支持环境访问,使用简单却强大的的探索功能把Python类型应用到环境变量上。默认是“字符串”格式,但是比如路径变量会自动是list对象。

Xonsh既可以接受Shell类型或Python类型的布尔快捷操作符。

这意味着Python关键字会被解释。如果我们想输出著名的苏斯博士的书的名字,我们需要把关键字用引号引用起来。

如果我们不这样做,结果就会很怪异。

虚拟环境可能需要费点劲。常规虚拟环境取决于BASH类语法,可能不能工作。但是,Xonsh自带了虚拟环境管理系统,叫做vox。

vox可以创建、进入和退出~/.virtualenvs环境。如果你用过virtualenvwrapper,它的虚拟环境便是这里。

注意,当前进入的环境并不影响Xonsh。它不能从所在环境导入任何东西。

第一行让vox可用,是Xonsh的第三方扩展,叫做xontrib。xontrib管理程序会列出所有可用的xontribs以及他们的当前状态(已安装、已加载、或都没有)。

写一个xontrib是可行的,并可以上传到pypi使其可用。但是,把它添加到xontrib索引中是个好的做法,可以让Xonsh提前知道它。比如说,这可以让配置引导程序提出建议。

如果你曾经有过“Python可以作为我的Shell吗?”的疑问,那么你只需要运行pip install xonsh来找到它。


英文原文:https://opensource.com/article/18/9/xonsh-bash-alternative
译者:Ray



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/Obr36XWedC
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/24135
 
483 次点击