
Python能做大项目
文章平均质量分 93
量化风云
这个作者很懒,什么都没留下…
展开
-
pip安装慢,如何换源?
如果觉得命令不好记,有两种方法,一是安装cfg4py,这是我开发的一个包,用来解决Python的配置文件读取问题,它可以让你用yaml格式写配置文件,但在程序中却是以python class的属性语法来访问配置项,这样不用写。更换 pip 的默认源至国内的镜像源可以显著提高下载速度,尤其是在网络环境不佳或国外源响应慢的情况下。在 Windows 系统中,配置文件通常位于用户的主目录下的 .pip 文件夹中,即 %USERPROFILE%.pip。不过我们这里要讲的是它的另一个功能,就是对常用配置进行提示。原创 2024-07-18 16:41:07 · 398 阅读 · 0 评论 -
为什么Python虚拟环境应该只用conda?
Python 的虚拟环境方案可谓源远流长,种类繁多。如果你接触 Python 已经有一段时间了,那么你很可能听说过 annaconda, virutalenv, venv, pip, pipenv, poetry, pyenv, pyvenv, pyenv-virtualenv, virtualenvwrapper, pyenv-virtualenv wrapper 等相似概念。原创 2024-07-18 07:30:00 · 1473 阅读 · 0 评论 -
不要去写书 除非是要与你的灵魂交谈
Let your light shine. 让你的光芒闪耀。原创 2024-07-17 22:14:04 · 1201 阅读 · 0 评论 -
高薪金领都用啥编程语言?SQL、Python领航,附排名!
关于Python,在工程技巧方面可以参考我的新书《Python高效编程实战指南》,算法方面可以多刷leetcode、kaggle的题,或者简街、千禧的puzzle专栏,我们的专栏也不时会有一些性能优化的技巧。但是,金融行业对C++和Rust这样的互联网热门编程语言的需求并不大,尽管这两种语言在高频交易中不可或缺,但毕竟高频交易比较小众、无法吸纳大资金,因此行业的重心不会在这里。因此,Python才是真正意义上的王者,不仅仅是在金融领域,根据TIOBE 6月的排名,它仍然位居榜首,并且受欢迎程度在上升中。原创 2024-07-15 19:09:11 · 456 阅读 · 0 评论 -
防范胜于救灾!版本管理是你的后悔药!
那是一个痛苦的夜晚。一些人开始准备善后方案,我们则带着愧疚的心情,努力试图让代码尽可能地回滚到通过测试的那个版本的状态。如果有 CI/CD,这种失误几乎不可能发生。如果有版本控制的话,即使发生了这种失误,纠错代价也会小很多。原创 2024-03-21 20:20:32 · 1031 阅读 · 0 评论 -
Get Your Back Covered! Coverage, CodeCov和Tox
如果我们的软件支持 3 种操作系统,4 个 python 版本,我们就必须在 3 种操作系统上,分别创建 4 个虚拟环境,安装上我们的软件和依赖,再执行测试,上传测试报告。这个动作不仅相当繁琐,还很容易引入错误。原创 2024-03-04 08:00:00 · 963 阅读 · 0 评论 -
使用SQL来操作DataFrame?我们给pandas找了个新搭子
使用sql来操作DataFrame,这是一个令人感兴趣的话题原创 2024-01-29 08:00:00 · 1673 阅读 · 0 评论 -
测试覆盖与矩阵
tox 是一个通用的 Python 虚拟环境管理和测试命令行工具,旨在自动化和标准化 Python 测试。它是简化 Python 软件的打包、测试和发布过程的更大愿景的一部分。大多数项目都使用它来确保软件在多个 Python 解释器版本之间的兼容性。根据配置创建基于多个版本的 python 虚拟环境,并且保证这些虚拟环境的可复制性(需要与 poetry 或者其它依赖管理工具一起)。在多个环境中运行测试和代码检查工具,比如 pytest 和 flake8, black, mypy 等。隔离环境变量。原创 2024-01-20 23:48:49 · 1612 阅读 · 0 评论 -
Mock大法:Fake it till u make it!
Verweile doch, du bist so schön! 你是如此美丽,请逗留片刻吧!原创 2024-01-19 20:57:29 · 1219 阅读 · 0 评论 -
单元测试:Testing leads to failure, and failure leads to understanding
Testing leads to failure, and failure leads to understanding原创 2024-01-16 20:29:22 · 1538 阅读 · 2 评论 -
处女座程序员,请喜欢 Black
允许定制只会让团队陷入到无意义地争辩当中,而风格并无对错,习惯就好。我们常常看到在团队里,一些人为代码风格争论,其实他们反对的并不是某种风格本身,他们只是在反对自己的同事而已。原创 2024-01-07 08:00:00 · 1297 阅读 · 0 评论 -
Python能做大项目(9) - Mypy: 把静态类型检查带给Python
之前我们介绍过,Python作为一门动态语言,为人诟病的缺点之一,就是难以像java那样,支持静态类型检查,这样会把一些错误带到运行中(如果你不进行单元测试的话)。不过,随着type hint的推开,实际上现在Python已经有了比较充分的静态类型检查。这一章我们先介绍其它Lint工具,然后再重点介绍静态类型检查工具 - mypy。原创 2024-01-06 08:00:00 · 3013 阅读 · 0 评论 -
Python能做大项目(8) - Need for Speed! 高效编码之一
在Jukka Lehtosalo从剑桥毕业后,受Guido邀请,加入了Dropbox,领导了mypy的开发工作。这里也可以看出顶尖大学对待学术研究上的开放和不拘一格。大概在2016年前后,我看到斯坦福的网络公开课上还有讲授ios编程的课,当时也是同样的震撼。一是感叹他们选课之新,二是感叹这种应用型的课程,在国内的顶尖大学里,一般是不会开设的,因为大家会觉得顶尖的学术殿堂,不应该有这么“low”的东西。原创 2023-12-29 07:30:00 · 1303 阅读 · 0 评论 -
Python能做大项目(7) - Poetry: 项目管理的诗和远方之二
接下来比较幸运,当 poetry 查找 asyncpg 和 sqlalchemy 的传递依赖时,没有找到它们有更多的传递依赖,解析结束,这样,poetry 就顺利地选择了 29 个版本中,最新的一个,即 SQLAlchemy-1.3.24。另外,如果该依赖发布了一个紧急的安全更新,通常会使用递增修订号的方式来递增版本。当你使用 poetry add 命令,不加任何选项时,该依赖将被添加为发行依赖(在 1.3 以上的 poetry 中,被归为 main 组),即安装你的包的最终用户,他们也将安装该依赖。原创 2023-12-26 08:00:00 · 1507 阅读 · 0 评论 -
Python能做大项目(6)Poetry -- 项目管理的诗和远方之一
Poetry 是一个依赖管理和打包工具。它提供了版本管理、依赖解析、构建和发布的一站式服务,并将所有的配置,集中到一个文件中,即 pyproject.toml。此外,Poetry 还提供了一个简单的工程创建向导。不过这个向导的功能仍然过于简单,我们的推荐则是使用上一章介绍的 python project wizard。原创 2023-12-25 22:00:19 · 1483 阅读 · 0 评论 -
Python能做大项目(5)基于语义的版本管理
在 2021 年 3 月的某个孤独的夜晚,我决定创建一个创建一个 python 项目以打发时间。作为一个有经验的开发人员,我的机器上已经有了好多个其它的 python 项目,这些项目往往使用不同的 Python 版本,彼此相互冲突。所以,从一开始,我就决定通过虚拟开发环境来隔离这些不同的工程。经过一晚上折腾,项目运行得很流畅,目标达成,放心地去睡觉了。第二天早晨醒来,sqlalchemy 1.4 版本发布了。原创 2023-12-18 20:14:53 · 2792 阅读 · 1 评论 -
Python能做大项目(4)项目布局与生成向导
不写代码,就不会产生 bug,这真是极高的佛家智慧:菩提本无树,明镜亦非台,本来无一物,何处惹尘埃?不过,就是这样一个项目,还是被人提交了超过 3k 的 issues(当我们认为项目中存在 bug,或者有新的功能需求,就可以提出一个 issue),远超平均水平,这也算是程序员的幽默吧?原创 2023-12-16 21:56:06 · 397 阅读 · 1 评论 -
Python能做大项目(3) - 依赖地狱与Conda虚拟环境
人们试图建造巴别塔,但上帝会毁灭它。虚拟环境似乎解决了依赖地狱问题,但不曾想冒出10多种虚拟环境方案。显然,永远不只一种显而易见的解决之道!原创 2023-12-16 21:41:54 · 345 阅读 · 1 评论 -
Python能做大项目(2) -开发环境构建
尽管条条道路通罗马,但毕竟有的路走得更平稳更快捷,更不要说有的人甚至就住在罗马。对于 Python 开发而言,你的开发环境有多好用,你离罗马就有多近。因此,我们的旅程从这里开始。本章首先介绍 Python 开发的操作系统环境,然后介绍几个最流行的集成 IDE,并对他们的特点进行了比较,供读者选择。原创 2023-12-12 20:11:49 · 634 阅读 · 0 评论 -
Python能做大项目(1)为什么要学Python之一
2020 年,欧洲太空署(European Space Agency)打算向火星派出一个探测器,把一些岩石样品带回地球,以检测火星上是否存在生命。受燃料限制,探测器只能带回 500g 的火星岩石。因此,只有精心挑选的样本才能被带回地球。科学家们准备构建一个现场挑选器,这个挑选器必须有视觉重建能力,为此他们构建了一个人工神经网络。在这项任务中,无论是构建神经网络和多 CPU 集群,还是通过 PyCUDA 来使用 NVida 的 CUDA 库,都重度依赖 Python。原创 2023-12-12 19:56:12 · 393 阅读 · 0 评论