来源:Python编程时光

当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试。

有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带装了 n 多依赖库,就前一篇文章介绍的 streamlit 来说,依赖包就达 90 几个之多?

比百度全家桶,还 tm 的全家桶啊…

也正是因为害怕会污染我的全局 Python 环境,我通常在试用新包的时候,都会使用 venv 创建虚拟环境,再去安装,完事之后,再清理虚拟环境即可。

有没有发现,整个流程,其实还是挺麻烦的。

刚好昨天晚上,Github 上瞎逛,被我发现一个库,可以解决我一直以来的烦扰。

这个库叫 trypackage,为试库而生的库。

当你使用 try xx 命令时,它会做哪些事呢?

  • 安装指定版本的 Python 解释器

  • 创建临时的虚拟环境

  • 激活虚拟环境

  • 在虚拟环境中安装你要试用的 Python 库

  • 直接进入 Python Shell 模式

  • 自动将你要试用的库导入进来

# 1. 如何安装

一条命令就可以安装它

python3 -m pip install trypackage

可以看到 trypackage 只依赖一个 click 命令行库,还是很轻量的

其实不是这样,try 会基于 virtualenv 创建虚拟环境,因此还要安装 virtualenv 和 virtualenvwrapper

python3 -m pip install virtualenv virtualenvwrapper

# 2. 基本使用

使用 try requests,try 就会创建一个虚拟环境,然后在该虚拟环境中,安装 requests ,安装完成后,自动进入 Python Shell 的模式,并且自动导入好你要试用的包

最贴心的是,试用完后,退出 Python Shell ,会自动清理掉虚拟环境。

# 3. 更多用法

指定 python 版本

我的环境没有安装 Python 3.8,通过 -p 参数,可以指定 Python 3.8 ,安装的过程太快,快得让我有点怀疑这是不是真正的去安装 Python 3.8 解释器了。

也可以直接指定本地的 Python 版本,例如

try requests -p /usr/bin/python3.7.1

指定运行模式

Try 直接的运行模式非常多

1、当你不指定时,默认使用 python shell 的模式

# 二者等价
try requests
try requests --shell python

2、使用 ipython 有两种指定方式

# 二者等价
try requests --ipython
try requests --shell ipython

3、使用 ptpython 或者  ptipython

这两种模式都有代码提示与自动补全功能

4、使用 bpython 模式

Bpython 的代码提示与补全比 ptpython 、ptipython ,更强一点,其他的区别还没试用到。

在编辑器中打开

try requests --editor

指定 Github 仓库包

# 语法示例
try <user>/<repo> # 安装 Github 上的 Kenneth/requests 上的 master 版本
try kennethreitz/requests

指定已经存在的虚拟环境

try requests --virtualenv ~/.try/sandbox

持久化虚拟环境

默认情况下,你退出后,会自动清理掉虚拟环境,若有特殊需要,可指定 --keep 参数来持久化虚拟环境

指定虚拟环境的目录

默认情况下,try 会将虚拟环境创建在一个默认的目录中,这个目录比较深,不容易记住,你可以指定 --tmpdir 参数,告诉 try 要将虚拟环境创建在这里,这个参数对于想要持久化虚拟环境的人会很有用。

try requests --tmpdir ~/.try

# 4. 配置文件

try 虽然提供命令行入参的方式来识别用户选项,但对于一些用户来说,更希望能一次性修改 try 的默认选项,而不用每次都指定多个参数。

这时候,可以在你的 APP 目录下新增一个 config.ini 文件,内容模板如下

[env]
virtualenv=~/.try/sandbox
python=3.8
shell=ipython
keep=false
always_use_editor=false
tmpdir=~/.try

所谓的 APP 目录,在不同的系统中是不一样的,可以使用如下代码来查看

>>> import click
>>> click.get_app_dir("try")
'/Users/iswbm/Library/Application Support/try'
>>>

有了 config.ini,再次 try ,就会发现效果与配置一样的预期一致。

# 5. 总结一下

Try 是一个非常实用的命令行工具,功能可以说完全击中我的痛点,能把这样一个库做出来,真的是创意十足,再一次印证 Python 是懒人第一语言 。。

-------- End --------

精选资料

回复关键词,获取对应的资料:

关键词 资料名称
600 《Python知识手册》
md 《Markdown速查表》
time 《Python时间使用指南》
str 《Python字符串速查表》
pip 《Python:Pip速查表》
style 《Pandas表格样式配置指南》
mat 《Matplotlib入门100个案例》
px 《Plotly Express可视化指南》

精选内容

数据科学: VS Code 中 Python配置使用指南 | 财经工具 Tushare | Matplotlib 最有价值的 50 个图表

书籍阅读: 如何阅读一本书 | 巴菲特之道 | 价值 | 原则 | 投资最重要的事 | 戴维斯王朝 | 客户的游艇在哪里 | 刻意练习 | 林肯传 | 金字塔原理

投资小结: 2021Q4 | 2021Q3 | 2021Q2 | 2021Q1 | 2020Q4

精选视频

可视化: Plotly Express

财经: Plotly在投资领域的应用 | 绘制K线图表

排序算法: 汇总 | 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序 | 基数排序

懒人必备神器 !一个创意十足的 Python 命令行工具相关推荐

  1. 懒人神器 !一个创意十足的 Python 命令行工具

    作者 | 写代码的明哥 来源 | Python编程时光 当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试. 有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带 ...

  2. 自己写的python软件可以在哪发布-如何发布一个Python命令行工具

    本文简介 上次写的一个终端里面斗鱼TV弹幕Python版本和Ruby版本,并且发布到PIP和RubyGems上面.在发布PIP包的时候,居然Google不到一篇可以非常好的讲解这个流程的文章.于是整理 ...

  3. irobot擦地机器人故障_懒人必备神器,电动高频擦地,科沃斯地宝T8 AIVI扫地机器人...

    虽说一屋不扫,何以扫天下,但扫地真的累,本来一天回到家就很累了,扫地拖地就需要半个小时,有时候床底桌底还清理不到,周末还要时不时的来一次全方位的大扫除,本来就难得的休息时间就浪费在了扫地拖地上了.好在 ...

  4. python命令行工具是什么_Python 命令行神器 Click

    Click 是一个用于快速创建命令行工具的 Python 支持库,Click 具有高度可配置性,使用非常少的代码就可以创造一个优雅的命令行工具,Click 使创建命令行工具变得快速而有趣. 实际上 P ...

  5. argparse模块_Argparse:一个具体案例教会你python命令行参数解析

    问题描述: 现有一个用于数据格式转换的py脚本(多转一),执行时通过命令行传入一系列的参数控制其具体运行方式,使满足以下要求: 1. 必须传入需要处理的原始数据文件名 2. 可以指定输入文件的格式,若 ...

  6. 忘不了手机随身私密管家,懒人必备神器

    科技的不断发展让人们的生活更加的方便,但同时各种与账号密码相关的产品不断出现.比如各种银行卡.支付宝.财富通会员卡.滴滴出行卡.邮箱等与资产和工作息息相关的软件,都会产生各种账号.登录和支付密码,不仅 ...

  7. 【CSDN】-官方插件推荐懒人必备神器

    前言: 插件(Plug-in,又称addin.add-in.addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序.其只能运行在程序规定的系统平台下(可能同时支持多个平台) ...

  8. 拿走不谢!创客学院教你64个Linux运维必备命令行工具

    系统管理员(sysadmins)负责日常维护生产系统和服务.其中一个关键任务就是保证功能性服务能24小时工作.为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等.和任意其他管 ...

  9. java venus_来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具...

    前言 不知道你是否有过这样的经历.不管你是什么岗位,前端也好,后端也罢,想去了解一下Java开发到底是什么样的,它是不是真的跟传说中的一样. 于是你拿起键盘,用触控板 ? '' : 抄起鼠标',开始了 ...

  10. 有哪些命令行工具堪称神器?

    过去几年,在 GitHub 上见到过不少优质的项目,其中不乏特别实用,能大幅提升生产力的命令行工具. 今天在这里就简单整理下,跟大家分享几个比较实用的命令行工具吧. mas 一个 Mac 应用商店命令 ...

最新文章

  1. python股票自动交易从零开始-python程序化交易编程-python制作自动交易程序!
  2. kali linux wps 2019 删除_一分钟,轻松上手 Linux 安装QQ,让你简单开启聊天办公新环境...
  3. iOS UITextField使用全攻略
  4. xgboost实例_XGBoost超详细推导,终于有人讲明白了!
  5. linux目录结构及作用详图
  6. 百度工程师带来干货分享,助你转型AI应用工程师!
  7. 微博数据采集的10个经典方法
  8. python连接微信运动_怎样读取微信运动数据接口?
  9. Android 多语言应用(步骤+源码)
  10. 关于员工激励的思考-期望理论
  11. 大华技术股份有限公司测开笔试题分享
  12. word里面怎么在框里打勾
  13. 软件构造之抽象相关知识总结
  14. python数据分析建模-十分钟搞懂“Python数据分析”
  15. erlang rebar 配置mysql_Erlang Rebar 使用指南之一:入门篇
  16. 金三最冷春招?你工作找的怎么样?
  17. oracle数据库UNDOTBS空间清理
  18. idea strus html项目创建,搭建struts2 项目开发环境——(使用Intellij IDEA+Maven+struts2 )...
  19. 最短路径(Dijkstra算法)
  20. JAVA:(金融风暴)

热门文章

  1. 二进制转十六进制(参考XYJ)
  2. 浅谈混迹力扣和codeforces上的几个月
  3. Android的权限声明
  4. 泰克Tektronix示波器软件TDS520|TDS1001|TDS1002上位机软件NS-Scope
  5. 掌上飞车-艳云脚本云控系统
  6. 百度富文本编辑器修改图片上传尺寸
  7. Java实现蓝桥杯VIP算法训练 预测身高
  8. 【转】LaTeX 符号命令大全
  9. Marshmallow 的用法
  10. 三维模型楼盘展示的功能及优点