在python virtualenvs中安全轻松地调试文件
env的Python项目详细描述
是否需要查看某个虚拟环境中的代码?然后花了3到4秒的时间输入路径?此时,您已经厌倦了在站点包中进行更改/设置断点而不首先创建备份…然后需要在测试后重新还原,以及yada yada yada。此工作流既烦人又乏味
envy是一个实用程序,允许您与当前活动的virtualenv中的所有网站包进行安全的交互,就像它们在当前工作目录中一样。
< P>![羡慕最佳5](https://cloud.githubusercontent.com/assets/3979753/13486757/df564a3A-e0e1-11e5-9e48-666fb658f6f4.gif) 如何? 假设您在虚拟环境中为一个项目工作,但却从一个依赖项(一个名为bar的库)中抛出错误。stacktrace告诉我们错误是从baz.py抛出的。使用envy,只需运行(从文件系统中的任何位置):(foo)$envy编辑栏/baz.py
你会立刻从你最喜欢的文本编辑器中看到错误点!
#####很好,文件已打开,但在编辑网站包中的文件之前不应创建备份?困惑:
这是一个很好的做法,但是有了嫉妒,就没有必要了!在启动编辑器之前,envy首先在~/中创建包的备份。
环境安全,不受破坏,您可以放心地抛出一些pdb断点,print语句,或任何您想要的小黑客!当您准备好将包还原回其原始状态时,只需运行: (foo)$envy干净酒吧 就好像你从来没去过那里! ###等等,还有呢!:pig2::鸡蛋: 假设您维护一个库,以及另一个依赖于ham的项目。您想测试您最近对ham所做的一些更改,但还远没有准备好开始修改版本或运行setup.py install。使用envy您可以非常快速地将更改从本地开发人员的ham副本同步到居住在eggs这样的虚拟环境中: (鸡蛋)$envy sync火腿 您还可以同步独立文件: (鸡蛋)$envy sync ham/spam.py *注意:*envy sync命令必须在您要同步的包的本地副本中运行(即ham) 与envy edit一样,将自动创建包的(ham状态的备份。与以前一样,要恢复原始状态: (鸡蛋)$羡慕干净的火腿 ##不说话,直接使用:不说话: ####编辑活动虚拟环境中安装的任何网站包中的任何文件: (活动的virtualenv)$envy编辑任何网站包/任何文件.py ####放弃所有编辑,并将任何网站包返回到其原始状态: (active virtualenv)$envy清除任何网站包 您可以同时运行编辑和从文件系统中的任何位置清除,只要您在包含所需软件包的virtualenv中。 ####将所有编辑过的包还原到其原始状态: (活动virtualenv)$envy clean–全部 ####将所有本地更改从随机库同步到它所处的位置
(一些虚拟机):dev/random库$envy sync random库 目前,sync命令不能像edit和clean那样灵活地运行(它们只在希望同步的python包中运行时才起作用)-尽管将来肯定有可能改进这一点。 ####查看包的当前副本与其备份(干净)副本之间的差异: (一些virtualenv):$envy diff包 *注意:*envy edit使用$editor环境变量启动文本编辑器–如果未设置,只需添加: 导出编辑器=您选择的编辑器 到您的.bashrc文件。 ##安装
$pip install envy 对于手动安装:
"贝壳"
$git clonehttps://github.com/shaunvxc/envy.git
CD嫉妒
$python setup.py安装
##未来工作:
-添加envy diff函数,将当前应用的更改与干净的备份副本进行比较
-探索以不同格式打包的选项(使用curl安装),以便它在全球范围内可用(而不是基于每个virtualenv基础)
-处理本地制造的鸡蛋包装?或者用pip强制当地建筑?
-允许从文件系统上的任何地方运行sync
##贡献 1。分叉(https://github.com/shaunvxc/envy/fork" rel="nofollow">https://github.com/shaunvxc/envy/fork) 1。创建您的功能分支(git checkout-b new feature) 1。提交更改(git commit-am'add some feature') 1。运行测试(进行测试) 1。将更改推送到分支(git push origin new feature) 1。创建拉取请求