原文地址:https://blog.python.org/2018/04/pip-10-has-been-released.html 作者:Paul Moore 译者:首席IT民工 我代表Python包管理局(Python Packaging Authority),很高兴在此宣布:pip10刚刚正式发布了。这个版本是几个月以来社区工作的结晶。 要安装pip 10,请运行: python -m pip install –upgrade pip 或者,按照https://pip.pypa.io/en/latest/installing 所述,使用 get-pip. 如果你使用的pip版本来自于分发供应商,会由供应商在适当的时候提供升级(你也可以选择在虚拟环境中使用pip 10)。 (在Windows上使用 get-pip 有个小问题:在下载get-pip.py文件时,请重命名这个文件,以确保文件名中不包含”pip”,比如 gp.py。否则会触发pip的检查,导致运行中断。我们正在跟进这个问题,地址是:https://github.com/pypa/pip/issues/5219 )。 新版本pip 10的亮点: 已不再支持 Python 2.6 。 如果你需要在Python 2.6 上使用pip,请留在pip 9这个版本,这是支持Python 2.6的最后一个版本 支持PEP 518,允许项目指定从源代码打包所依赖的安装包。(当前对PEP 518的支持比较有限,未来的版本会提供所有的支持 – 详情请参见文档) 对于Windows上非ASCII语言环境下的Unicode字符处理,提供了显著改进 提供了新的”pip config”命令 默认的升级策略已改为:只在需要的情况下 修复了许多bug,以及多个细微改进 此外,先前宣布的pip内核重组已经开始了。除非你写的代码有导入pip模块(或者你使用了这样的代码),否则这一变化不会对你产生任何影响。如果你受到了影响,请将问题报告给问题代码的作者(推荐他们访问https://mail.python.org/pipermail/distutils-sig/2017-October/031642.html 详情请参阅公告) 感谢为新版本付出辛劳的每个人。社区成员做了许多的贡献 – 有代码方面的,有参与设计讨论的,或者上报bug的。pip开发团队由衷地感谢社区各位所做的贡献。 谢谢 Paul
Monthly Archives: April 2018
[翻译作品]详解Python中的下划线
本文介绍了Python中单下划线和双下划线(”dunder”)的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类。 单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 – 而有一些含义是由Python解释器严格实现。 如果你想知道“Python变量和方法名称中单下划线和双下划线的含义是什么?”,我会尽我所能在这里为你解答。 在本文中,我将讨论以下五种下划线规范和命名约定以及它们如何影响Python程序的行为: 单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:__var__ 单下划线:_ 在文章结尾处,你可以找到一个简短的“速查表”,总结了五种不同的下划线命名约定及其含义。 让我们马上开始! 1. 单前导下划线 _var 当涉及到变量和方法名称时,单个下划线前缀只有约定本身的含义。 这是对程序员的一个提示 – 意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。 下划线前缀的含义是向其他程序员表示:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。 这不是Python强制规定的。 Python不像Java那样在“私有”和“公共”变量之间有很强的区别。 这就像有人提出了一个小小的下划线警告标志,说: “嘿,这不是真的要成为类的公共接口的一部分。不去管它就好。“ 看看下面的例子: 如果你实例化此类并尝试访问在__init__构造函数中定义的foo和_bar属性,会发生什么情况? 让我们来看看: 你会看到_bar中的单个下划线并没有阻止我们“进入”类并访问该变量的值。 这是因为Python中的单个下划线前缀仅仅是一个约定 – 至少在涉及变量和方法名的时候。 但是,前导下划线的确会影响从模块中导入名称的方式。 假设你在一个名为my_module的模块中有以下代码: 现在,如果使用通配符导入从模块中导入所有名称,则Python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表): 顺便说一下,应该避免通配符导入,因为它们使名称空间中存在哪些名称不清楚。 为了清楚起见,坚持常规导入更好。 与通配符导入不同,常规导入不受前导单个下划线命名约定的影响: 我知道这一点可能有点令人困惑。 如果您遵循PEP 8推荐,避免通配符导入,那么您真正需要记住的只有这个: 单个下划线是一个Python命名约定,表示这个名称是供内部使用的。 它通常不由Python解释器强制执行,仅仅作为对程序员的提示。 2. 单末尾下划线 var_ 有时候,一个变量的最合适的名称已经被一个关键字所采用。 因此像class或def这样的名称不能用作Python中的变量名称。 在这种情况下,您可以附加一个下划线来解决命名冲突: 总之,单个末尾下划线(后缀)是一个约定,用来避免与Python关键字产生命名冲突。 PEP 8解释了这个约定。 […]
Mark Minasi
也不知道还有多少人记得这本书。十多年前,靠着这本书我才算正式进入了IT业。那时候微软如日中天,拥趸众多,这本书十分畅销。 注意,这本书有1063页!有可能是我这辈子到目前为止读过的最厚的书了。。。尽管厚,这本书着实经典,易懂,让我一个不爱读书的门外汉和MSFT结下了不解之缘。 本来已经忘记了,最近在Pluralsight上听课,无意间碰到Mark Minasi的课,觉得这个名字好熟悉呀,仔细一查,原来正是此书的作者! 当年上网不便,原来Mark是这个样子滴。 我发现叫Mark的牛人确实不少。 尘封的记忆啊。
My videos on Microsoft Stream
https://msit.microsoftstream.com/studio/videos Most of the sessions are tech-talks delivered in Chinese for support engineers in Greater China Region
[翻译作品]2018年3月Python十大开源项目
原文地址: https://ogmcsrgk5.qnssl.com/vcdn/1/%E4%BC%98%E8%B4%A8%E6%96%87%E7%AB%A0%E9%95%BF%E5%9B%BE/python-top-10-open-source-projects-v-mar-2018-e2ce1d645ec.png 译者:首席IT民工 在过去的一个月中,我们对近250个Python开源项目进行了排名,选出了前十。 我们比较了在此期间有新的发布或是重大发布的项目。Mybridge AI基于多种因素对项目进行排名,以衡量其在专业人员眼中的质量。 本期平均点赞数:570 追踪Python前十位开源项目,并每月收到一次电子邮件 选题:日期时间,调试器,地图,数据校验,打印,交易机器人,多重比较,矩阵,下载程序 开源项目对程序员大有裨益。希望你找到一个有意思的项目,让你有所启发。 第1名 Delorean:时间旅行变得容易了[v 1.0] [Github上点赞数:1335个] 第2名 Birdseye: 快速、方便、以表达为中心的、使用AST的Python图形化调试器 [Github上点赞数:674个] 第3名 Som-tsp: 使用自组织地图技术解决旅行中的销售员所遇到的问题 [Github上点赞数:432个] 第4名 Voluptuous:尽管名字有点妖娆,这是一个Python的数据校验库 [Github上点赞数:1066个] 第5名 Icecream(冰淇淋):甜甜的,奶油般柔滑的打印调试 [Github上点赞数:530个] 第6名 Binance-trader 币安网交易者 (Binance: 区块链资产交易平台): 币安网加密货币交易机器人 (实验性的) [Github上点赞数:590个] 第7名 Multidiff: 针对于多个对象或者数据流的二进制(数据)比较工具 [Github上点赞数:188个] 第8名 Unimatrix: 可以模拟电影《黑客帝国》中终端显示的Python脚本。默认使用半角片假名的Unicode字符,但可以使用自定义的字符集 [Github上点赞数:558个] 第9名 Mypy-protobuf (协议缓冲区):用于从协议缓冲区中生成mypy 根的开源工具 [Github上点赞数:33个] 第10名 Lulu: You-get的一个友好分叉(fork), 即爬取网络的无声下载程序 [Github上点赞数:296个] 这些就是每月开源项目的介绍。如果你喜欢这种方式,请按照您的编程技巧阅读我们网站上的每日最佳文章。