当前位置: 首页 > 知识库问答 >
问题:

设置工具“开发”要求

甘英光
2023-03-14

TL;DR:在运行python安装程序时,有没有一种方法可以钩住setuptool的“develope”来安装一组开发需求。py开发

我正在使用setupols构建我的第一个python包。我将要求指定为:

requirements = [
    'click',
    'ansible',
    'fabric',
    'gitpython',
    'pyyaml',
    'jinja2',
    'yapsy'
]

test_requirements = [
    'pytest',
    'pytest-pep8',
    'pytest-cov',
]

setup(
...
    install_requires=requirements,
    tests_require=test_requirements,
...
)

在开发过程中,我一直在安装软件包(在虚拟环境中),其中包括:

python setup.py develop

和卸载:

python setup.py develop -u

这个包使用entry_points来安装一些命令行脚本,所以这为我设置了命令,并允许我在测试命令的同时编辑这个包。

我还有一些用于开发的依赖项。。。sphinx扩展和其他一些东西(使用包不需要的东西)。我现在只是在虚拟环境中手动安装它们。我没有看到任何关于如何使用setuptools连接它们的文档(也没有在谷歌上找到任何示例)。

也许有一种方法可以勾住“设置”。py“开发”以安装一组附加要求?还有一种方法我没读过?

共有1个答案

厉文栋
2023-03-14

有关使用设置的更多信息。pyvs要求。txt,我发现这篇文章很有帮助。

我不再使用要求。txt(参见下面的原始答案)用于安装仅限开发的软件包。流行的观点似乎是需求。txt应用于将部署固定到特定版本号,通常使用pip冻结

我改为使用extras\u require选项设置

requirements = [
    'click',
    'ansible',
    'fabric',
    'gitpython',
    'pyyaml',
    'jinja2',
    'yapsy'
]

setup({
    install_requires=requirements,
    extras_require={
        'dev': [
            'pytest',
            'pytest-pep8',
            'pytest-cov'
        ]
    }
})

现在,要安装用于开发的软件包,您需要运行pip install-e。[dev]。这将安装所有常规必需的软件包以及extras\u requiredev部分中列出的软件包。

生产安装仍然可以使用python安装程序完成。py安装pip安装 (或使用requirements.txt文件)。

下面是一种方法,它似乎符合我遇到的关于设置的建议。pyvs要求。txt。在setup的install\u requires参数中指定所有生产依赖项。py

requirements = [
    'click',
    'ansible',
    'fabric',
    'gitpython',
    'pyyaml',
    'jinja2',
    'yapsy'
]

setup({
    # ...
    install_requires=requirements
    # ...
})

然后创建一个requirements.txt文件,指示pip从setup.py安装生产依赖项以及测试依赖项。

-e .

pytest
pytest-pep8
pytest-cov

现在,您可以使用pip安装-rrequirements.txt安装您的开发包。-e.行将在开发模式下从setup.py安装包及其依赖项。要在生产环境中安装,您可以使用Pythonsetup.py安装或pip安装。这将只安装setup.py中列出的依赖项。

 类似资料:
  • 测试是 Web 应用开发过程中不可获缺的工作。Nuxt.js 尽量帮助你简化这部分工作。 端对端测试 ava 是一个很强大的 JavaScript 测试框架,结合 jsdom,我们就可以轻松地给 nuxt 应用进行端对端测试。 首先,我们需要添加 ava 和 jsdom 作为项目的开发依赖: npm install --save-dev ava jsdom 然后在 package.json 中添加

  • 第三方 SDK C#: v2ray-dotnet-sdk 自动化工具 V2Ray 使用下列自动化工具进行编译和发布。 Bazel: 用于编译和打包。 Azure DevOps: 用于部分项目的自动化发布。 Google Cloud: 用于部分项目的自动化发布。 CloudFlare: 用于支持官网和域名解析。

  • 剖析性能 使用 Devel::NYTProf,或 Devel::DProf。 分析代码质量 使用 Perl::Critic,它基本上是针对 Perl 的 lint。 分析变量结构 使用 Data::Dumper。

  • 俗话说“工欲善其事必先利其器”,我们开发程序也是一样,开发工具对于我们开发来说用好了能够成倍的提高我们的开发效率,虽然Go的语法简单至极,但是如果有自动化提示,这将会大大的提高我们的开发效率。这一章我将给大家介绍两个目前来说开发Go非常强大而方便的工具:LiteIDE和Sublime Text。LiteIDE是国内牛人开发的一款开发Go的利器,里面很多功能都是非常方便和强大的。Sublime Te

  • Git https://skyao.gitbooks.io/learning-git/installation/ubuntu1604.html sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git gitbook https://skyao.gitbooks.io/leaning-

  • 主要内容:常用源码编辑工具介绍,集成开发工具介绍本节介绍一下 Java 常用的几个开发工具。下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是为了给 Java 编码和开发提供卓越的支持。 常用源码编辑工具介绍 Java 源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的 Java 代码编辑工具。比如:Windows 记事本,Mac OS X 下的文本编辑,Linux 下的 vi