Python 开发工具链全解

可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码。在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意。有些人在互联网上发现了这一点,其他人却要看自己付出代价后才意识到。还有太多人(特别是非程序员)真的相信除此外没有别的办法了。

这篇文章适用于所有类型的 Python 学习者,因为即使你知道存在替代方案,也难以掌握。 Python的工具链令人困惑,因为有许多软件是相互依赖的,并且它们的关注点也有很多重叠。很难理解它们在 Python 编程体系中的定位。

出于这个原因,我决定列出最重要的工具,它们的使用场景和原因,以及它们解决了什么问题。我将尝试用简单的词语解释你应该如何使用这些工具。如果我在本文中列出了某个工具,这意味着,作为一个Python程序员,你应该至少知道它的存在。我将仅列出可应用于任何项目或工作流的工具,每次启动新项目时都应考虑这些工具。这并不意味着您总是必须在每个项目中使用它们。在某些情况下,太多的工具很容易成为一种负担,并且难以维护。

Setuptools

Setuptools是在Python中创建包的标准方法。它无处不在,有效并发挥了应有的作用。

  • 用途:从源代码构建egg,zip或wheel文件,为项目定义元数据,以结构化和标准化的方式共享代码
  • 场景:基本上每次你想编写应该运行在其他机器上的代码时
  • 替代品:Poetry, Flit

virtualenv

Virtualenv是一个虚拟环境管理器。隔离的虚拟环境可以理解为“安装了独立包的Python版本。使用virtualenv意味着不需要(并且不应该)使用系统默认的python版本来安装软件包。

  • 用途:保持依赖关系分离,在同一系统中支持多个python版本,轻松移动依赖关系
  • 场景:想写代码时,想使用不同于默认版的Python版本时
  • 替代品:Docker或同等产品

Pip

Pip是Python最常用的包管理工具。它允许您获取本地或远程包,并将它们安装在虚拟环境或系统的Python中。

  • 用途:安装和卸载软件包,跟踪正在使用的软件包的版本
  • 场景:任何时候都可以使用
  • 替代品:诗歌,康达

distutils

distutils是setuptools的先驱。后者大量使用来自distutils的功能,因此很多情况下都会用到该工具。这不是你会直接选择使用的工具,但你应该知道它生态中的作用。

Pypi

Pypi是Python Package Index的简称。它存储了所有你可能会用到的Python库。Pip就是从这里获取构建好的包。

  • 用途:发布代码
  • 场景:要公开发布包时

Pypiserver

Pypiserver是Pypi使用的Package Index API的一个实现。您可以用它来配置自己的代码库,例如为整个公司设置并在那里发布包,而不是公开发布。

  • 用途:组织内部共享代码
  • 场景:代码不应公开,希望拥有控制权
  • 替代方案:Warehouse(Pypi使用的库),djangopypi

Poetry

Poetry是也是一个包管理系统,可以取代setuptools,pip和一些建立在它们之上的工具。这个工具,是对Python打包系统的一次全面重构尝试。到目前为止,它得到了一些支持和很多积极的反馈,但它还远远没有成为主流选择。

  • 用途:处理和分发包,管理依赖项
  • 场景有一个新项目而且不怕使用相对小众的工具
  • 替代方案:Pipenv

Pipenv

Pipenv和 Poetry 一样,是一种以更加理智的方式构建Python项目依赖关系和配置的工具。它通过 Pipfile,管理项目的依赖关系,并确保一致性和易用性。

  • 用途:处理和分发包,管理依赖关系
  • 场景:想尝试类似 Poetry 的工具,但希望引起更少的问题
  • 替代方案:Poetry

Sphinx

Sphinx是构建文档的工具。它最初诞生的目的,是处理Python的文档,但现在已经成为了一个通用文档工具。它仍然是Python项目最常见的文档工具。

  • 用途:根据reStructuredText文件,生成PDF或HTML文档
  • 场景:希望为项目提供外部文档,API和代码
  • 替代方案:Docutils,Doxygen

autodoc

autodoc是Sphinx的基本扩展,允许从Python源代码中生成restructuredText文件,其中包含每个类,函数,模块等的条目。

  • 用途:记录代码或API
  • 场景:可能每次使用Sphinx进行项目时
  • 替代方案:autosummary

py.test

py.test在我看来是Python中最好的测试套件。它具有很多功能,但并非所有功能都得到充分的推广,因此需要一些时间来发现该软件支持的丰富可能性

  • 用途:测试代码
  • 场景:什么场景下都需要用的,别犯懒
  • 替代方案:unittest,nose

Hypothesis

Hypothesis是基于属性的测试工具。简单地说,它会根据你提供的规范生成随机测试场景,直到找到导致测试失败的情况。在开始使用此工具之前,请花点时间了解背后的原理。

  • 用途:测试代码,尤其是数据处理
  • 场景:需要使用各种输入数(数字,字符串,结构化数据)测试复杂逻辑时

tox

tox本质上是测试工作中的虚拟环境管理器。这意味着配置测试,让其在一系列干净,可自定义的虚拟环境中运行,以确保代码能够在不同条件下工作。所有这些都不需要任何手动处理。

  • 用途:需要在不同条件和环境中运行的代码。对CI也很有用。
  • 场景:代码需要支持不同的Python版本,在不同的环境和不同的操作系统中运行
  • 替代方案:bash scrips,CI pipeline

pyenv

pyenv是一个python版本管理器。它旨在简化开发人员处理多个版本时的本地工作流程。

  • 用途:运行支持不同python版本的项目
  • 场景:需要使用系统python版本,但是却安装了很多种时
  • 替代品:手动管理,virtualenv,Poetry,Pipenv

PyScaffold

PyScaffold是一种以标准化方式初始化项目结构的工具,并提供我们之前列出的一些工具,而无需手动配置它们。它支持高度定制。

  • 用途:初始化项目;有多个项目,需要统一的工具和结构
  • 场景:各种场景都可以使用(只要你熟悉工具,不要在紧急情况下去尝试新工具)
  • 替代方案:python-project-template,Cookiecutter

flake8

flake8是Python最常用的风格检查工具之一。它运行不同的脚本来验证代码是否符合Python的风格指南要求(PEP-8)。

  • 用途:验证并保证项目中良好的代码风格
  • 当每次您的项目需要被某人阅读时,包括您自己
  • 替代方案:pylint

Black

Black是一个自动代码格式化工具。这意味着Black不会仅仅检查您的代码是否合规,还会实际修改它以使其符合规范。

  • 用途:自动格式化代码
  • 场景:愿意放弃手动控制代码风格
  • 替代方案:autopep8,yapf

原文地址:https://www.cnblogs.com/cuiyubo/p/10981831.html

时间: 2024-10-13 02:09:51

Python 开发工具链全解的相关文章

Ubuntu SDK开发工具链

Ubuntu系列现在已经发展为云.服务器.桌面.平板.手机通吃的全功能OS了,这里介绍了Ubuntu SDK如何为其全面的应用开发提供支持,包括Ubuntu SDK的安装以及Scope.QML和JavaScript集成应用等基本概念. 大家都知道Ubuntu是目前最好用的桌面Linux发行版(之一?),而且Ubuntu Server也与OpenStack完全搅合到了一起,云端的开发功能也是相当的强大了.除此之外,Ubuntu也在大举向移动端进军,已经支持平板和手机了(效果如何看市场了).这里先介

下破解安装Python开发工具WingIDE4.1

步骤: 1.将系统时间调整到一个月之前,然后执行安装. 可以使用date命令调整系统时间,如:date -s '2012-08-14 10:00:00' 2.安装成功后,打开程序,按照提示信息,申请一个10天的试用版License,然后退出. 3.下载附件中的文件abstract.pyo,将其放到安装目录下的/bin/2.5/src/process下面. 我这里路径是/usr/local/lib/wingide4.1/bin/2.5/src/process,可以通过whereis wingide

[Python开发工具] Pycharm之快捷键

[Python开发工具] Pycharm之快捷键 1 全局搜索: Ctrl+Shift+F,不过PyCharm的更强大, 你可以点选左侧某个目录后再按Ctrl+Shift+F, 这样默认会搜索改目录;tip: 如果只是想高亮下文件, 只要选中Project Navigator然后直接打字就会自动高亮所有匹配的文件; 2 添加注释: Ctrl+/, 再按一遍取消注释 3 重构Refactor: Ctrl+Alt+Shift+T 有时候代码写了好长了, 发现当初文件命名不合理, 手动修改需要遍历所有

Python开发工具PyCharm个性化设置(图解)

Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文汉化专业版 授权:特别软件 类型:国外软件 语言:简体中文 大小:197.79 MB 日期:2015-07-10 环境:WinXP, Win2008, Win7, Win8 下载 1.设置默认PyCharm解析器: 操作如下: Python–>Preferences–>Project Interp

常用的十大Python开发工具

据权威机构统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业.可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉你. 1.Micro Python Micro Python基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器.编译器.虚拟机和类库等.目前支持基于32-bit的ARM处理器,比如说STM32F405. 借助它,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,如控制LED

ARM工具链详解

工具链:工具链就是一堆工具集合,它这里就会说到是编译器.链接器.装配器甚至包括调试等等这样一堆的工具集合就称为工具链.在这里默认自带ARM公司的工具链,所以我们可以直接使用,包括还可以支持一些静态链接库或者动态链接库等等. 然后就可以自己写代码进行编译,而编译出来的东西就直接是针对ARM的,那么这个并文件就可以直接给它烧到这样的一个开发板上. 同时在关盘目录下面有个Linux,在Linux下面就有一些与Linux相关的很多工具,包括"mktools"工具,文件系统制作工具,图上第一款就

Python 开发工具和框架安装

引言: 其实之前对于 Python,只是知道有这门语言而已.大部分还是使用 .net 开发的,之前也学了 MVC+EF 开发,但是由于工作上完全用不到,也就没有在博客记录学习的东西了. 最近又接触到了爬虫这项技术,然后了解到 Python 开发爬虫好像很厉害的样子.于是就来了兴趣,兴趣是一个重要的东西,于是就开始慢慢接触 Python 了. 然后就从最基本的配置开发环境什么的.突然发现做 .net 真的是很方便啊,开发环境根本就不用担心,windows 系统上只需要装上 Visual Studi

Python开发工具搭建-Pycharm

PyCharm2017. 3.X专业版 安装使用. 注册码激活 本文以 Windows系统 为例: 1.开发工具获取及下载 Anaconda(Python 的集成工具 ) 下载地址: https://www.continuum.io/downloads Pycharm 2017-3.x开发工具 下载地址: https://www.jetbrains.com/pycharm/download/#section=windows 2.安装.注册.激活 a.安装集成运行环境 Anaconda 双击Ana

python开发工具之分析

开发工具篇之工具分析 任务:开发python程序环境:编辑器+解释器 [原始开发python] 环境:安装python (提供python解释器,命令行shell窗口,简易python编译器,第三方库安装器pip) [快捷开发python] 集成环境:安装pycharm (IDE) (方便文件项目的构建/管理,编辑调试) 原文地址:https://www.cnblogs.com/floakss/p/10796879.html