【问题标题】:How to tell whether setup() is reading the setup.cfg?如何判断 setup() 是否正在读取 setup.cfg?
【发布时间】:2020-03-18 12:25:53
【问题描述】:

我得到了一个使用pyscaffold 生成的 Python 项目,我在根目录 setup.pysetup.cfg 看到了两个标准主项目文件。我修改了setup.cfg 文件,在元数据部分下添加了一行version=1.0.0

但是,在运行 python setup.py developpython setup.py sdist 时,我在输出中看到工件名称没有我在 setup.cfg 中指定的版本。我看到以下内容:

Installed c:\users\SkyWalker\code\my_project\src
Processing dependencies for my_project==0.0.post0.dev1+g8386a10.dirty
Finished processing dependencies for my_project==0.0.post0.dev1+g8386a10.dirty

分发工件有这个0.0.post0.dev1+g8386a10.dirty 版本,我不知道它是从哪里得到的。如何判断python.cfg是否被读取?

生成的 pyscaffold setup.py 如下所示:

# -*- coding: utf-8 -*-
"""
    Setup file for aqm_database_api.
    Use setup.cfg to configure your project.

    This file was generated with PyScaffold 3.2.3.
    PyScaffold helps you to put up the scaffold of your new Python project.
    Learn more under: https://pyscaffold.org/
"""
import sys

from pkg_resources import VersionConflict, require
from setuptools import setup

try:
    require('setuptools>=37.0')
except VersionConflict:
    print("Error: version of setuptools is too old (<37.0)!")
    sys.exit(1)


if __name__ == "__main__":
    setup(use_pyscaffold=True)

所以它没有显式加载setup.cfg,而且require('setuptools&gt;=37.0') 行每次都会失败,无论版本值是什么。

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

    PyScaffold 将setuptools 配置为使用setuptools_scm 给出的版本。 这意味着,要更改项目的版本,您需要use git to tag your project。这在https://pyscaffold.org/en/v3.3.x/features.html#versioning-and-git-integration 中有简要描述。

    我想这就是更改 setup.cfg 不会更改创建的发行版版本的原因。先验setuptools should always read setup.cfg

    为了确保setuptools 正在读取setup.cfg,您可以做的一项实验是:

    1. 确保删除项目根目录内或 src 文件夹内的所有 *.egg-info 文件夹(以确保您看不到缓存版本)。
    2. setup.cfg 文件中更改作者之类的简单内容
    3. 像往常一样构建你的包(例如python setup.py bdist_wheel
    4. 在项目根目录或src 目录中查找新的&lt;your-project&gt;.egg-info 文件夹。在那里阅读PKG-INFO。您应该能够看到证明setuptools 正在读取setup.cfg 的更改(否则最好的选择应该是使用setuptools 开票/问题)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多