自从官方宣布 2020 年 1 月后不再更新维护 Python2,已经有一大批开源软件将其抛弃。今天,抛弃 Python2 的名单上又多了一个重磅软件。
Python2 是 Python 官方在 2000 年开源的 Python 新版本,但因为其自身的问题,导致 Python 官方几年内就推出了新的 Python3。出于保护开源社区的初衷,官方并没有强迫开发者升级,并继续给予 Python2 更新维护,因此 Python2 就一直苟延残喘到了今年。
眼看留在 Python2 的开发者不太可能继续更新,Python 官方终于发了大招,他们宣布:2020 年 1 月起不再维护 Python2。大量开源软件,如 Numpy、Pandas 等都宣布放弃 Python2,但是只有 PyTorch 官方没有表态。近日,他们的开发工程师在论坛上透露:我们也不再支持 Python2 了。
官方声明
PyTorch 的官方维护者表示,他们不会再支持 Python2,声明全文如下:
现在几乎所有主要的开源 Python 包都支持 Python 3.x 和 Python 2.7 版本,并且很多项目几年前就已经支持这两个版本的 Python 语言了。虽然我们已经开发了相应的工具和技术来有效地维护版本之间的兼容性,但在开发大量代码的过程中依然不断出现一些小问题。
所以,我们希望充分发挥 Python 3 的应用潜能,并且现在依然允许用户编写兼容两个版本的代码,以实现平稳的过渡。但是,我们并不打算无限期地维护版本兼容性。虽然向 Python 3 的过渡并不如我们所预期的那样快速,但越来越多的用户开始使用、讲授和推荐 Python 3 了。
虽然 Python 3 早已在 2008 年开源,但 Python 语言的开发者意识到依然有很多用户使用 Python 2,所以从 2015 年开始他们扩展了对 Python 2.7 的支持。我们相信多留给用户的这 5 年足以顺利地完成向 Python 3 的过渡,并且将在 2020 年 1 月 1 日之后停止对 Python 2 的支持。之后,我们将简化代码,充分利用 Python 3 版本和标准库的诸多新功能。
此外,需要注意的是,2020 年之前,我们的很多项目将不再支持 Python 2.7,仅支持 bug 修复,并且所有的新功能只有 Python 3 才支持。目前,一些 PyTorch 项目已经完成了向 Python 3 的过渡。
第三方或许可以对 Python 旧版本上的项目提供更长时间的付费支持。我们不会加以干涉,因为这种做法符合自由和开源软件的核心原则。但是,如果你希望享受对 Scientific Python 堆栈等众多项目的免费和第一方支持,请着手开始将自己的项目转移到 Python 3。
基于以上这些原因,我们决定在 2020 年 1 月 1 日之后停止对 Python 2.7 的支持,从而与 Python 开发团队放弃支持 Python 2.7 的时间线保持一致。
延伸阅读:续命多年的 Python2
Python2 是 2000 年推出的 Python 版本,但是官方表示他们发现了一些问题,于是在 2006 年开始了 Python3 的开发工作,如果 Python3 能够向下兼容,或者干脆强硬一点让 Python2 退场,也许就没有今天这么多麻烦事情了。
然而不巧的是,当时有大量的开源软件和开发者在使用 Python2,它因其 Python 灵活友好的属性,根植在了大大小小的程序和框架中,贸然迫使开发者放弃 Python2 无疑会让整个开源社区大受打击,甚至造成开发者流失的问题。甚至连 OSX 系统自带的 Python 版本都是 Python2 的。于是,双轨制的 Python2 和 Python3 开始了,Python 社区俨然分成了两派。
原本官方打算在 2015 年下决心移除 Python2,但是似乎没有什么用处,依然有很多开发者,甚至是深度学习框架都在使用 Python2。因而停止维护的时间也就一拖再拖,直到 2020 年官方终于表示要停止维护了。
不过,究竟还会有多少人在停止维护后依然使用 Python2 呢?毕竟,想想 Windows XP 和 Windows 7。
活的 Python 框架,它简单而且功能强大。0.4 是支持 Python 2 的最后一个版本,接下来的版本将不再支持 Python 2。更新内容如下:

修复 Python 3 兼容性问题
取消对 Python<2.7 的支持
允许从 http 修补程序请求获取表单数据
仅在非默认数据的情况下存储新的会话数据
支持 SameSite cookie 属性
cookie 的过期时间现在设置为与 session timeout 相同
支持 SQLite 数据库的 url,如 sqlite:///mydb.sqlite、sqlite:////absolute/path/mydb.sqlite
允许 web.form.input() 中的 HTML 5 表单输入元素
为不同类型添加更多的表单类:Email、Url、Number、Range、Color、Search、Telephone 和 Datalist
目录 experimental/ 被删除了
模块 web/webopenid.py 已经被删除,它使用了旧 python-OpenID 模块
修复了请求中的 Unicode
修复了 Templator 中导致错误的内联注释
修复 IP 地址,其中包含的空间不应通过验证
修复了使用 boto 发送电子邮件的不正确的参数顺序
修复了 DiskStore 并发问题


修复第一次代码更改时,Reloader 不捕获 APP 模块的问题
如果身在美国,就像其余四千万单身男人一样,注册一下Match.com, J-Date和OkCupid等相亲网站,坐等真爱上门不就可以了。但是相信大多数人和McKinlay一样,尽管向OkCupid算法推荐匹配的女性发送了许多暧昧私信,但绝大多数都石沉大海了。转折出现在 2012 年 6 月的一个早上,这个只进行过 6 次线下约会的男人正在电脑上编译机器代码,另一个窗口显示着他孤零零的交友头像,他突然顿悟:他一直在使用错误的方法寻找爱情。为了不辜负自己在应用数学领域取得的成绩,他决定,在OkCupid上爬取每一条相关信息,利用关键的K-Modes的改良贝尔实验室算法找出数据规律,缩小范围,然后一击命中。换句话说,这是一次数学家独创的完美约会经验贴,还不快来看看!第一步:分析失败原因,知己知彼OkCupid是哈佛大学的数学系学生于 2004 年创立的约会网站,最初这个网站吸引人们注意力的是它基于计算方法的配对模式。会员会回答很多多项选择问题,这些问题覆盖面很广,包括政治、宗教、亲情、性、以及智能手机等。通常,系统会从上千道问题的题库里选出 350 道问题—— “以下哪种情形最有可能让你去看电影?”或是“宗教/上帝在你的生活中有多重要?”对于每一道问题,用户会选择一个答案,以说明自己伴侣的哪一个回答是他可以接受的,并通过给问题评分来表明问题对自己的重要性( 5 分制,从无关紧要到必须回答)。OkCupid的匹配引擎会利用这些数据来计算男女之间的合适程度。越接近100%,所谓数学意义上的灵魂伴侣就越匹配。McKinlay从数学上分析了自己一直以来的失败原因。OkCupid的算法只会使用双方都愿意回答的问题去计算,而McKinlay选择的问题有些随机,并不主流。当他查看与自己匹配的人时,匹配度超过90%的女人不到 100 个。要知道,洛杉矶有两百万女性(大约八万女性在使用OkCupid)。如果把匹配度比作可见度,那McKinlay可以说就是个看不见的幽灵。他意识到他应该去提高匹配的人数。如果McKinlay通过统计取样确定哪些问题是他喜欢类型的女人愿意回答的,那么他便可以诚实地回答这些问题而忽略其他问题,以此来创建一个全新的用户。利用这个办法,他可以匹配到在洛杉矶的每一个可能与他配对的女人,而不会匹配到不合适的人。第二步:借助Python,求助好友,疯狂收集数据Chris McKinlay利用Python脚本浏览了上百道OkCupid的问卷题目,然后把女性用户分为七类,每一类都会贴上独特的标签,例如“多才多艺的”和“细心体贴的”等等。即便作为一个数学家,McKinlay也是个不同寻常的人。他小时候在波士顿郊区长大, 2001 年他从Middlebury学院毕业并获得汉语言学位。同年 8 月份,他在纽约世贸中心北塔 91 层的一家公司里找了一份兼职工作,工作内容是将中文翻译成英文。五周后的一天,世贸大厦倒塌了。(那天,下午两点前McKinlay都没来公司。当第一架飞机于早上 8 点 46 分撞上大厦的时候,他正在睡觉。)“自从那件事后,我问自己,我究竟想做什么”他说。他的一个在哥伦比亚大学的朋友招聘他进入了一个由麻省理工职业 21 点团队衍生出的一个团队,这之后的几年里,他便往返于纽约和拉斯维加斯,他的工作是数牌,一年能挣六万美金。这段经历点燃了他对应用数学的兴趣,最终促使他在这个领域取得了硕士和博士学位。“他们能够在很多不同的情景下使用数学知识,”他说,“他们会见到一些新的游戏,比如‘三张牌的牌九扑克’,然后回家写点代码,接着就能找到策略去打败它。”现在,他想用同样的方式去寻找爱情。首先,他需要数据。就在他用旁边的窗口进行论文写作的时候,他建了 12 个假的OkCupid账户并写好了Python脚本去管理这些账户。这个脚本会搜索他的目标群体( 25 到 45 岁的异性恋或双性恋的女人),访问她们的主页,然后爬取她们账户上每一条有用的信息:种族、身高、是否吸烟、星座—— “这些我全都要”他说。为了找到心仪的另一半,他还做了一些额外调查。OkCupid可以让用户看到其他人的回答,但只能看到那些他们自己已经回答过的问题。 于是McKinlay设置了自己的机器人程序,以简单地随机回答每个问题,他并没有使用虚拟的个人资料吸引任何女性,因此答案并不重要,主要他要将这些女性的答案收集到了数据库中。McKinlay满意地看着他程序一路狂奔。 然后,在收集了大约一千个档案后,他遇到了第一个障碍。OkCupid有一个短平快的系统来防止这种数据收集,他的程序一个接一个地被禁。因此他必须把自己的程序训练的更像真人一些。他求助他的神经科学家朋友Sam Torrisi,最近刚教过McKinlay音乐理论以换取高级数学课程。Torrisi也注册了OkCupid,他同意在他的计算机上安装间谍软件来监控该网站的使用。根据手中的数据,McKinlay通过编程模拟Torrisi的点击率和打字速度。他从家里带来了第二台电脑并将其插入数学系的宽带线路,以便可以 24 小时不间断运行。三周后,他已经收集了来自全国各地 20000 名女性的 600 万个问题和答案。第三步:将 20000 名女性分为 7 类,找出最适合自己的按照McKinlay的工作计划,他需要从调查数据中找到一个规律,即需要根据相似性粗略地对女性进行分组。这个问题在他编写一个名为K-Modes的改良贝尔实验室算法时取得了进展。K-Modes算法 1998 年首次用于分析患病的大豆作物。他通过算法发现了一个自然的分割点,根据问题和答案,20, 000 名女性被分为成七个统计学组。 “我太高兴了,”他说,“那是六月份令我最兴奋的事情了。”他重新设置条件来收集另一个样本库:在过去一个月内登录OkCupid的来自洛杉矶和旧金山的 5000 名女性。通过K-Modes的另一次分组确认他们以类似的方式聚集并确保统计抽样有效。现在只需要决定哪个类群最适合他了,在抽查了每个类群的一些档案后,发现一个类群太年轻,两个太老,另一个太“基督”了。于是他徘徊在一个二十五岁左右的女性主导的类群中,工作类型比较独立,像是音乐家和艺术家。这简直是黄金单身群!就像是大海捞针,他找到了他的针,也就在这个类群的某个地方,他找到了真爱。一个相邻的类群看起来也引起了McKinlay的注意:年龄稍微大一些,从事专业的创造性工作,如编辑和设计师。他决定将两个类群都设定为自己的目标!于是设置了两个配置文件,A、B组各优化一个。第四步:真诚填写相关问题,找出灵魂伴侣他对这两个类群进行了文本挖掘以了解她们感兴趣的内容:教学是一个热门话题,因此他撰写了一篇强调了他作为数学教授工作的文章。更重要的是回答问题,于是他挑选了两个类群中最受欢迎的 500 个问题并决定诚实地填写答案,他不想在计算机生成的谎言的基础上建立未来的恋爱关系。但是他会使用一种称为自适应提升的机器学习算法来得出最佳权重,从而让计算机确定分配每个问题的重要性。有了这个后他发表了两个照片,一个是攀岩的照片,另一个是在音乐演出中弹吉他。“无论未来的计划如何,你现在对什么更感兴趣?性还是爱?” 这个问题的答案很明显是爱。但对于年轻的A群,他尊重计算机将问题评为“非常重要” 的结果。对于B群集,它则是“必须回答”的问题。当回答完最后一个问题时,他按照匹配百分比对洛杉矶的女性进行了OkCupid搜索。从头开始:第一页匹配率全是99%女性。向下滚动......然后......向下滚动……,来自洛杉矶各地的一万名女性迎面而来。离被关注还差一步! OkCupid会员在有人查看他们的网页时会收到通知,因此他写了一个新程序来访问查看他主页的女性的主页,并按年龄循环:周一有 1000 名 41 岁的女性,周二有 1000 名 40 岁的女性。两周后,轮到了 27 岁的女性。女性会回访他的个人资料,每天约 400 名左右。然后,私信开始滚滚而来。“直到现在我还没有遇到过如此匹配的人,而且我发现你的个人资料很有趣,”一位女士写道,“对于一个擅长数字的粗犷男人......我觉得我想认识你。”“嘿,你的个人资料很棒,我想认识你,”另一位写道,“我认为我们有很多共同之处,也许不是数学,但肯定还有很多!”“你真的会翻译中文吗?” 还有人问道,“我上了一些课,但学的并不好。”至此,数学部分已经完成。接下来,他需要离开他的小隔间,进入实际演练阶段,他要去真正的约会!第五步:走出小隔间,来一场真正的约会6 月 30 日, McKinlay开着他的尼桑穿越城镇来到加州大学洛杉矶分校的健身房,开始他的约会实践。Sheila是一位来自“A类群”的年轻的网页设计师。他们在Echo Park的一家咖啡馆吃了午饭。 “太不可思议了,这简直像一场学术活动一样。”与Sheila约会结束后,双方都觉得不来电。第二天,McKinlay进行了第二次约会,一个来自 “B类群”的博客编辑。他们计划在Echo Park Lake周围散步,却发现正在施工。女方一直在读普鲁斯特并对生活感到失望。 “这有点令人沮丧,”他说。第三天的约会也来自“B类群”。他在韩国城的一家酒吧遇到Alison。 她是一名实习编剧,肩膀上还纹了斐波那契螺旋。McKinlay喝了很多韩国啤酒,第二天带着痛苦的宿醉在他的小隔间醒来。他后来在OkCupid上私信她表示想继续约会,但她没回。虽然他被拒绝了,但每天仍然收到 20 条消息。实践约会显然与计算机配置文件约会是完全不同的。他开始忽略一些主页没有内容的人的消息,只回应那些有幽默感或在首页展示一些有趣的东西的人。以前他作为主动方,会交换三到五条消息来获得一个约会日期。现在就只发一个回复。 “你看起来很酷。想见面么?”20 个约会之后,他总结了一些潜在的规律。在较年轻的群体中,女性大多数有两个或更多的纹身,而且住在洛杉矶的东边。另一组中,她们疯狂的喜欢中型犬。早期的约会他会经过精心策划。但当工作越来越忙时,就开始在午餐或咖啡时间偶尔参加休闲聚会,而且经常一天之内约两场。他制定了一套个人规则来完成“马拉松爱情”搜索:不再约喝酒,如果不来电就赶快结束不要拖拉,不约音乐会或电影。 “约会中你们需要关注的是彼此而不是别的什么东西,不然效率会很低。”经过从他的两个档案中同等挑选约会的一个月后,他发现他耗费了太多时间在纹身群中接触东边的女性。他删除了他的A组简介。他的效率虽然提高了,但结果是一样的。随着夏天即将结束,他已经有过超过 55 次约会,每日都尽职地在实验笔记本上记录。只有三个产生了第二次约会,只有一个进行了第三次。大多数不成功的约会者都面临着自尊问题。对于McKinlay来说其实更糟糕。他不得不检查他的计算。后来一个来自 28 岁的艺术家Christine Tien Wang发来了消息。McKinlay之前在加州大学洛杉矶分校附近搜索到她, 6 英尺高蓝眼睛的人,正在那里修她的美术硕士学位。他们有91%的适合度。他在校园的雕塑花园遇见了她。从那里他们走到一个大学寿司会场,他立刻感觉到了来电了!他们谈论了书籍、艺术、音乐,当她承认她在给他发消息之前对她的个人资料做了一些小改动后,他给她讲述了关于他黑进爱情网站的整个经过。“我认为这样做有点腹黑和愤世嫉俗,”她说,“但我喜欢。”这是第一次约会,第二次紧随其后,然后是第三次约会。两周后,他们都暂停了他们的OkCupid帐户。我认为我所做的只是每个人在站点上所做事情的一种略微算法化,大规模且基于机器学习的版本。” McKinlay说。每个人都试图创建一个最佳的配置文件,他只是有数据来设计一个。这是他们第一次约会的一年后,McKinlay和Tien Wang在韦斯特伍德寿司吧台和一位记者见面,他们的已经正式确定关系了。McKinlay获得了博士学位,他正在教数学,目前正在攻读音乐研究生学位。Tien Wang被卡塔尔录取并获得为期一年的艺术奖学金。她在加州和McKinlay见面。他们一直在Skype上保持联系。根据记者的要求,McKinlay带来了他的实验笔记本。 Tien Wang之前没见过它。这是McKinlay紧密笔迹中的公式和方程式的页面,以一个整齐排列的女性名单和约会清单结尾,其中含有一些简短的注释。Tien Wang扫读了一遍,觉得一些亮点有点可笑。 她注意到, 8 月 24 日,他在同一天带了两个女人到同一个海滩。她说: “太可怕了。”对Tien Wang来说,McKinlay的OkCupid黑客历程是一个有趣的故事。但所有的数学和编码只是他们故事的序幕。见面后,恋爱关系才真正被黑客入侵。 “人们比他们的个人资料要复杂得多,”她说,“所以我们遇到的方式有点肤浅,但我们之间发生的一切都不是肤浅的,它是通过彼此的努力培养出来的。”“这不是说,我们匹配因此我们关系很好,” McKinlay表示赞同, “这只是一种将我们放在同一个空间的机制,我能够使用OkCupid找人。”Tien Wang对此有点愠怒:“你没找到我,我找到了你。”她摸着他的手肘说道。McKinlay停下来思考,然后承认她是对的。一周之后,Tien Wang又回到了卡塔尔,这对夫妇每天都会拨打一个Skype电话。当McKinlay拿出钻石戒指并将其举到网络摄像头前像她求婚时,Tien Wang说 “我愿意”。他们结婚时间并不完全确定,McKinlay说需要进一步研究以确定最佳婚礼日。相关报道:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:站长之家编辑
链接:https://www.chinaz.com/news/2019/0926/1050726.shtml
来源:站长之家

python现状的更多相关文章

  1. Day01 - Python 基础介绍

    1 Python 简介 1.1 Python 的由来 Python的创始人:吉多·范罗苏姆(Guido van Rossum) 1989年,吉多·范罗苏姆为了在阿姆斯特丹打发圣诞节假期时间,开发的一个 ...

  2. ApacheCN Python 译文集(二)20211110 更新

    Python 应用计算思维 零.序言 第一部分:计算思维导论 一.计算机科学基础 二.计算思维要素 三.理解算法和算法思维 四.理解逻辑推理 五.探究性问题分析 六.设计解决方案和解决流程 七.识别解 ...

  3. 通过数据分析告诉你北京Python开发的现状

    相信各位同学多多少少在拉钩上投过简历,今天突然想了解一下北京Python开发的薪资水平.招聘要求.福利待遇以及公司地理位置.既然要分析那必然是现有数据样本.本文通过爬虫和数据分析为大家展示一下北京Py ...

  4. Python 打包的现状:包的三种类型

    英文 | The state of Python Packaging[1] 原作 | BERNAT GABOR 译者 | 豌豆花下猫 声明 :本文获得原作者授权翻译,转载请保留原文出处,请勿用于商业或 ...

  5. HTTP/2和Python的支持现状-2019-10

    背景: 大概2019年9月份,天猫全面升级了HTTP/2的支持,并且加强了HTTP/1的访问限制,也可能很早前就这么做了, 但之前一直没限制HTTP/1的访问.之所以发现这个问题,是因为写的爬虫突然失 ...

  6. Python高手之路【一】初识python

    Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...

  7. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  8. Python介绍

    本节内容 Python简史 Python是一门什么样的语言? Python的优点与缺点 Python解释器 一.Python简史 历史背景 在20世纪80年代,IBM和苹果已经掀起了个人电脑的浪潮.但 ...

  9. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

随机推荐

  1. vue-cli项目模板的一些思考

    之前有个想法,就是要利用vue写一套ui.然后当时也没有搞清楚到底怎么写. 几经周转吧,通过付费的方式在gitbook上面找到了答案. 找到答案之后再看我们正在开发的项目,看伙伴写的代码,突然发现完全 ...

  2. Visual Studio Code 上java开发环境搭建

    在把一些开源的SDK中java代码转成C#代码时经常需要写点java代码来实验下功能,装个Eclipse或IDEAs吧,好像也不太值当,所以用vs code搭个环境偶尔来实验下.以下: 1.下载并装好 ...

  3. scikit-learn机器学习(一)简单线性回归

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt ## 设置字符集,防止中文乱码 import ma ...

  4. pod install报错 [!] Error installing......

    今天pod install出现这个错误: 解决办法: 多试几次就好了,也不知道之前几次都失败.....希望知道的可以留言告诉我哟!!!

  5. 【ARTS】01_23_左耳听风-201900415~2019004021

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. CentOS7.2环境下安装Nginx

    目录 1.下载安装包 2.安装nginx 3.配置nginx开机启动 4.测试 1.下载安装包 官网下载 wget http://nginx.org/download/nginx-1.16.0.tar ...

  7. Jmeter 逻辑控制器 之 While Controller

    一.认识 While Controller 如下图,创建一个While Controller (While 循环控制器) 设置界面如下: Condition (function or variable ...

  8. 【手记】解决Graphics.DrawImage带ImageAttributes在XP报内存不足的问题

    异常信息: System.OutOfMemoryException: 内存不足. 在 System.Drawing.Graphics.CheckErrorStatus(Int32 status) 在 ...

  9. SpringBean的工作原理

    在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean.简单地讲,bean 就是由 IOC 容器初始化.装配及管理的对象,除此之外,bean 就与 ...

  10. OpenGL(5)——变换

    学习三种变换:Scaling, Rotation和Translation. 上学期修了Kobbelt教授(男神!)的图形学基础课,这部分内容已经接触过. 添加GLM库,直接给出齐次坐标系下的变换矩阵和 ...