首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 任务自动化工具 tox 教程

简单来说,tox 是一个管理测试虚拟环境的命令行工具。它已存在多年且广被开发者们使用,例如,著名的云计算平台 OpenStack 也采用了它,作为最基础的测试工具之一。 1、tox 能做什么?...细分的用途包括: 创建开发环境 运行静态代码分析与测试工具 自动化构建包 针对 tox 构建的软件包运行测试 检查软件包是否能在不同的 Python 版本/解释器中顺利安装 统一持续集成(CI)和基于命令行的测试...创建和部署项目文档 将软件包发布到 PyPI 或任何其它平台 tox 官方文档中列出了 40 余种使用场景的示例,详细的列表可查看:https://tox.readthedocs.io/en/latest...使用pip search tox ,可以看到数量众多的“tox-”开头的库,它们都是 tox 的插件包。...,可以在这步去生成它的源发行版 创建虚拟环境:默认使用 virtualenv 来创建虚拟环境,并根据配置项中的“deps”安装所需的依赖项,然后执行配置好的命令(commands) 报告(report)

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    创建和发布 Python 包

    基本结构 创建一个名为podsearch的目录,进入这个目录,并创建一个虚拟环境(关于虚拟环境的文章,请参阅《Python 虚拟环境》) $ mkdir podsearch $ cd podsearch...可以在 TestPyPi 上获取该软件包。 公共包 把文件中的代码修改一下,让它真的有用。 # ......tox-gh-actions 包 和USING_COVERAGE 设置确保tox使用与GitHub Actions相同的Python版本,正如strategy.matrix所要求的那样(参阅Hynek...任务自动化 tox很好,但对开发不是很方便。运行诸如pylint、coverage等单个命令会更快,但这些命令非常冗长,因此我们将把这些枯燥的东西自动化。...使用你的PyPi用户名和密码,或者使用 API token. 现在,只要创建一个新版本,GitHub就会自动发布这个包。

    97530

    Python项目包与包之间冲突是什么鬼?这次讲明白点!

    我们经常会遇到这类问题,往往没有注意环境隔离,导致Python项目包与包之间冲突。 并且Python2与3代码执行有问题等等。鉴于此我今天给大家聊聊关于Python环境隔离问题以及如何进行隔离。...比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。 如果不进行环境隔离全局安装就会导致包的冲突,依赖不同,出现问题。...把下面的配置加入到我们的shell环境中,比如我的就是.zshrc。...Tox 上面我们提到了关于使用pyenv进行python2,3的版本隔离情况,实际过程中想要写出兼容Python2,3的代码,那么我们不得不提一下这个测试工具--tox。...tox提供了非常方便的方式来运行我们的不同环境下的测试,非常方便我们在写测试的时候,同时对Python2,Python3的环境进行测试,这里面强烈推荐大家使用。

    4.1K50

    建立成功的 Python 环境的 4 个基本工具

    使用 virtualenvwrapper 让虚拟环境更简单 使用 pyenv 安装 Python 的一个好处是,你所有后继安装的 Python 解释器环境都是你自己的,而不是操作系统层面的。...这样你就可以瞬间创建和切换到虚拟环境。 我在这篇文章中具体介绍了如何安装和使用 virtualenvwrapper。...这里我推荐一个独特的工作流程:你可以制作一个可以大量重复运行的虚拟环境,用来做 运行器(runner)。在这个环境中,可以安装你最喜欢的运行器 —— 也就是你会经常用来运行其他软件的软件。...这意味着在 tox 运行器中会有多个环境。一些会尝试在最新的依赖关系中运行,一些会尝试在冻结的依赖关系中运行(接下来会有更多的介绍),我也可能会用 pip-compile 在本地生成这些环境。...你可以在 virtualenvwrapper 创建的虚拟环境中或者 tox.ini 中使用这个依赖文件。 有时,也可以从 requirements-dev.in(内容:.

    43410

    Python 的 2018 年终总结:发展状况回顾

    Pipenv自动创建一个虚拟环境,在这个虚拟环境中安装和管理依赖关系,并保持Pipfile的更新。 虽然这个想法很好,但是使用它非常麻烦。...在实际使用中,我遇到了很多问题,常常不得不回头使用以前的处理方法——例如使用显式的虚拟环境。我还发现锁定非常慢(部分问题源于setup.py标准,它是工具生态系统中许多其他问题的根源)。...tox Tox仍然是python大陆中最好的(或者更准确地说,实际上是最好的)测试运行程序,但是它非常糟糕。不仅tox.ini的语法文件有点不直观,工具也非常慢。...这不是tox的错,整个setup.py系统设计就是有问题的。因为这些文件声明包依赖关系,同时可以执行代码,发现依赖关系本质上是缓慢的。这导致许多工具运行缓慢。...我相信这是我们作为一个社区在2019年应该解决的问题。 另外,目前还没有Pipfile支持,这使得使用它的价值主张大大降低。与所有事情一样,重要的不是这个想法有多好,而是围绕它的工具支持。

    55730

    进一步学习 nox 教程,轻松掌握命令行用法

    禁止外部程序 默认情况下,对于未在会话的虚拟环境中安装的程序,nox 会发出警告,但最终会允许你运行它。...something.py 将虚拟环境存储在其它目录中 默认情况下,nox 将虚拟环境存储在./.nox中,但是,你可以使用--envdir进行更改: nox --envdir /tmp/envs 跳过除安装命令外的所有内容...在很多情况下,仅需要 nox 运行安装命令,例如准备环境作离线测试,或者重新创建用于测试的虚拟环境。...要使用转换器,请在安装 nox 时附上tox_to_nox: pip install --upgrade nox[tox_to_nox] 然后,只需在 tox.ini 所在的目录中运行tox-to-nox...: tox-to-nox 这将基于 tox.ini 中的环境创建一个 noxfile.py。

    1.2K20

    OpenStack Neutron之持续测试

    在测试运行过程中,当执行到这些操作时,并不会深入到方法的内部去执行,而是直接返回我们事先假设的一些值。...Tox是一个标准的Python虚拟环境管理器和命令行测试工具。...可以用于检查软件包能否在不同的Python版本或解释器下正常安装;在不同的环境中运行测试代码;作为持续集成的组成部分,减少测试工作所需要的时间。.../article/details/19044667 Tox是OpenStack持续集成中非常重要的一个通用的虚拟环境管理和测试命令行工具,每个项目源码树的根目录下都有一个Tox配置文件tox.ini...# tox –e pep8 # tox –e py27 第一次执行时,会自动安装一些依赖的软件包,如果自动安装失败,我们可以根据提示信息手动执行安装。

    1.8K110

    使用 pyenv 来管理多个 Python 版本(2)

    .python-version,版本仍设置为 2.7.15,因为 .python-version 存在于父目录中。...-dev 虚拟环境与 pyenv 虚拟环境在管理 Python 安装和应用程序中扮演着重要角色。...输出中包含了一些额外安装的 Python 包的信息,包括 wheel、pip 和 setuptools。...通常情况下,你应该通过执行以下命令来激活你的虚拟环境: $ pyenv local myproject 你之前已经接触过pyenv local 命令,但这次不同,你不是指定一个 Python 版本,而是指定一个环境...这对于需要多个 Python 版本在 PATH 环境变量中可用以执行操作的工具(如 tox)来说极为有用。 假设在上述例子中,你发现了与你的库的兼容性问题,并希望进行本地测试。

    22710

    『中级篇』docker之CICD持续集成—真实Python项目的CI演示(72)

    有很多不同的依赖,如果环境全部都装在这个shell里面是不是很混乱,不光是python项目,如果有java项目啊,js的项目都装一下包肯定会很乱很乱,怎么去解决这个问题,看来只能通过docker了。...runner管理新的flask-demo ? python2.7的环境 sudo gitlab-ci-multi-runner register ?...python3.4的环境 sudo gitlab-ci-multi-runner register ? sudo gitlab-ci-multi-runner verify ?...这一般是由于我们的测试环境没有使用域名导致的,gitlab论坛里也不少人讨论这个问题,如果你是在部署正式的gitlab环境,那你自然会有一个域名来使用。...不过我这里只是搭建测试环境,所以我使用了一种投机的方法: 修改Runner的 /etc/gitlab-runner/config.toml文件,在其中的 [runner.docker]下增加: sudo

    1K20

    OpenStack Neutron之持续测试

    在测试运行过程中,当执行到这些操作时,并不会深入到方法的内部去执行,而是直接返回我们事先假设的一些值。...Tox是一个标准的Python虚拟环境管理器和命令行测试工具。...可以用于检查软件包能否在不同的Python版本或解释器下正常安装;在不同的环境中运行测试代码;作为持续集成的组成部分,减少测试工作所需要的时间。.../article/details/19044667 Tox是OpenStack持续集成中非常重要的一个通用的虚拟环境管理和测试命令行工具,每个项目源码树的根目录下都有一个Tox配置文件tox.ini...# tox –e pep8 # tox –e py27 第一次执行时,会自动安装一些依赖的软件包,如果自动安装失败,我们可以根据提示信息手动执行安装。

    1.9K80

    『中级篇』docker之CICD持续集成—真实Python项目的CI演示(72)

    有很多不同的依赖,如果环境全部都装在这个shell里面是不是很混乱,不光是python项目,如果有java项目啊,js的项目都装一下包肯定会很乱很乱,怎么去解决这个问题,看来只能通过docker了。...runner管理新的flask-demo [1240] python2.7的环境 sudo gitlab-ci-multi-runner register [1240] python3.4的环境 sudo...tox - tox -e py27 tags: - python2.7 unittest-py34: stage: test script: - pip...这一般是由于我们的测试环境没有使用域名导致的,gitlab论坛里也不少人讨论这个问题,如果你是在部署正式的gitlab环境,那你自然会有一个域名来使用。...不过我这里只是搭建测试环境,所以我使用了一种投机的方法: 修改Runner的/etc/gitlab-runner/config.toml文件,在其中的[runner.docker]下增加: sudo vi

    75320

    pycharm中创建虚拟环境「建议收藏」

    1 什么是虚拟环境 虚拟环境是用于依赖项管理和项目隔离的Python工具,允许Python站点包(第三方库)安装在本地特定项目的隔离目录中,而不是全局安装(即作为系统范围内的Python的一部分)。...· 系统上安装的Python可执行文件的symlink符号链接。 · 确保执行Python代码的脚本使用在给定虚拟环境中安装的Python解释器和站点包。 2.为什么使用虚拟环境?...环境中运行,想想就应该知道,如果不使用虚拟环境,这这两个项目可能无法同时使用,使用python3则公司之前的项目可能无法运行,反正则新项目运行有麻烦。...虚拟环境为一系列潜在问题提供简单的解决方案,尤其是在以下几个方面: · 允许不同的项目使用不同版本的程序包,从而解决依赖性问题。...· 只需要一个项目,无需在系统范围内安装软件包,就能保持全局site-packages /目录整洁。 听起来很方便,不是吗?开始构建更复杂的项目并与其他人协作时,虚拟环境的重要性会凸显出来。

    1.2K30

    『中级篇』docker之CICD持续集成—真实Python项目的CI演示(72)

    有很多不同的依赖,如果环境全部都装在这个shell里面是不是很混乱,不光是python项目,如果有java项目啊,js的项目都装一下包肯定会很乱很乱,怎么去解决这个问题,看来只能通过docker了。...runner管理新的flask-demo [1240] python2.7的环境 sudo gitlab-ci-multi-runner register [1240] python3.4的环境 sudo...tox - tox -e py27 tags: - python2.7 unittest-py34: stage: test script: - pip...这一般是由于我们的测试环境没有使用域名导致的,gitlab论坛里也不少人讨论这个问题,如果你是在部署正式的gitlab环境,那你自然会有一个域名来使用。...不过我这里只是搭建测试环境,所以我使用了一种投机的方法: 修改Runner的/etc/gitlab-runner/config.toml文件,在其中的[runner.docker]下增加: sudo vi

    2.7K50

    详解Python虚拟环境的原理及使用

    本文先介绍虚拟环境的基础知识以及使用方法,然后再深入介绍虚拟环境背后的工作原理。(环境:在macOS Mojave系统上使用最新版本的Python 3.7.x) 目录 为什么使用虚拟环境?...什么是虚拟环境? 使用虚拟环境 管理环境 虚拟环境如何运行? 1. 为什么使用虚拟环境?...听起来很方便,不是吗?开始构建更复杂的项目并与其他人协作时,虚拟环境的重要性会凸显出来。很多数据科学家也需要熟悉虚拟环境中与多语言相关的Conda环境。 可按照先后次序来使用! 2....虚拟环境是用于依赖项管理和项目隔离的Python工具,允许Python站点包(第三方库)安装在本地特定项目的隔离目录中,而不是全局安装(即作为系统范围内的Python的一部分)。...-r requirements.txt将项目的依赖项安装在活动的虚拟环境中。

    2.7K20

    Django环境搭建和开发初体验

    搭建环境 sudo pip3 install package 开发中, 使用如上命令安装, 会将包安装到/usr/local/lib/python3.6/dist-packages/下 产生的问题: 如果在一台电脑中开发多个项目使用同一个库的不同版本就无法做到...# 安装虚拟环境扩展包 # 安装虚拟环境扩展包的目的是使用更加简单的命令来管理虚拟环境 配置环境 # 在~/.bashrc或~/.zshrc中加入下面两行 export WORKON_HOME=$...包操作 安装包 pip install 包名称 注:在虚拟环境中不可使用sudo pip install 来安装python包,这样安装的包实际是安装在了真实的主机环境上 查看已安装的python包 #...app这个目录可以被当作包使用, 其中内容为空 app/migrations/: 用于之后定义引用迁移功能 app/models.py: 添加模型层数据类的文件 app/tests.py: 测试代码文件...app/views.py: 定义URL响应函数 安装应用 创建完应用后, 需要安装才可以使用, 建立应用和项目之间的关联 在dj_test/settings.py中的INSTALLED_APPS元组中添加应用名称就可以完成安装

    38520

    Python的众多包管理器

    MANIFEST.in: 告诉打包软件(如 setuptools)在包中包含哪些非代码文件。 tox.ini:Tox 工具使用此文件配置环境设置、依赖项和测试命令(你现在看到冗余了吗?)...很大一部分原因不在于 poetry 本身,而是因为 Python 包枚举其依赖项的不同方式。...当你位于自己的项目目录中时,事实上你就处于自己的虚拟环境中(它不一定是与系统环境和任何其他活动的虚拟环境完全隔离的)。这可以极大减少在 Python 中激活和停用各种虚拟环境工具时进行琐碎操作的情况。...conda 实际上可以在其自己的 conda 虚拟环境中管理非 Python 依赖项以及 Python 包。...如果存在一些鲜为人知的 Python 包没有这个文件,那么您将无法使用 conda 干净地安装它。但是,pip 可以在 conda 环境中安装,从而导致可能令人尴尬地依赖于两个包管理器的混合使用。

    35310
    领券