Python 运行setup.py将创建未设置版本的version.py文件

Python 运行setup.py将创建未设置版本的version.py文件,python,Python,运行my setup.py时,将创建一个version.py文件,而不使用该文件中指定的版本。如何修复它以指定版本 这是我的setup.py: from setuptools import setup, find_packages from codecs import open from os import path here = path.abspath(path.dirname(__file__)) with open(path.join(here, 'README.md'), enc

运行my setup.py时,将创建一个version.py文件,而不使用该文件中指定的版本。如何修复它以指定版本

这是我的setup.py:

from setuptools import setup, find_packages
from codecs import open
from os import path


here = path.abspath(path.dirname(__file__))

with open(path.join(here, 'README.md'), encoding='utf-8') as f:
    long_description = f.read()


def parse_requirements(filename):
    lineiter = (line.strip() for line in open(filename))
    return [line for line in lineiter if line and not line.startswith("#")]


install_reqs = parse_requirements(filename='requirements.txt')

setup(

    name='eagle-py-framework',  # Required

    version=1.0,  # Required

    description='Eagle Python Framework',  # Required

    long_description=long_description,  # Optional

    author='asdf',  # Optional

    author_email='asdf',

    url='asdf',

    classifiers=[  # Optional
        'Development Status :: 3 - Alpha',
        'Intended Audience :: Developers',
        'Topic :: Software Development :: Build Tools',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ],
    packages=find_packages(exclude=['contrib', 'docs', 'tests']),  # Required
    install_requires=install_reqs,  # Optional
)
我用来运行它的命令是:

python setup.py sdist
它创建的version.py文件仅包含以下内容:

__version__=
使用版本作为字符串

setup(

        name='eagle-py-framework',  # Required

        version = "1.0",  # Required #string
    )
从这里开始->

3) 当模块(或软件包)包含版本号时,版本 应在版本属性中提供

4) 对于位于命名空间包中的模块,该模块 应包括版本属性。名称空间包本身 不应包括其自己的版本属性

5) 版本属性的值应为字符串


刚刚尝试了这个,由于某种原因,它仍然不起作用。我得到以下警告:UserWarning:Unknown分发选项:“version”警告。warn(msg)@chrissley将version用作stringok,这似乎在大部分情况下都有效。没有显示version.py文件(我希望这是正确的行为);然而,它仍然显示出用户警告。@chrissley太棒了,我添加了一个链接,你可以从中获得一些信息。人们应该知道,PEP-0396在2021-04-14年被拒绝了。“自该PEP首次编写以来,在这几年中,包装生态系统发生了显著的变化,API如importlib.metadata.versions()提供更好的体验。“
version
应该是字符串。