带有 setuptools 的 Python 包的名称格式
Format of name of a Python package with setuptools
setuptools.setup()
的 name
参数应该是什么格式?它是自由格式的,所以我可以在上面使用空格吗?
from setuptools import setup, find_packages
setup(
name="My Stuff",
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
还是应该是标识符?
setup(
name="MyStuff", # Or my_stuff
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
我可以在上面使用连字符吗?
setup(
name="my-stuff",
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
此外,setuptools 和 distutils 之间的规则是否不同?
不能使用空格。名称不区分大小写,连字符和下划线是等效的,还有一些 "confusable" 字符被视为等效的其他情况。从 PEP 426 关于包命名:
As distribution names are used as part of URLs, filenames, command
line parameters and must also interoperate with other packaging
systems, the permitted characters are constrained to:
ASCII letters ( [a-zA-Z] )
ASCII digits ( [0-9] )
underscores ( _ )
hyphens ( - )
periods ( . )
Distribution names MUST start and end with an ASCII letter or digit.
setuptools 和 distutils 在这方面没有区别。
尽管不用担心 distutils; setuptools 是要走的路。那些动荡的日子结束了。截至 2013 年,"setuptools [is] the default choice for packaging"。这是打包工具 recommendations,虽然链接已损坏,但脚注提供了关于为什么 setuptools 更好的可靠信息,Pip 无论如何都会使用它进行安装。
setuptools.setup()
的 name
参数应该是什么格式?它是自由格式的,所以我可以在上面使用空格吗?
from setuptools import setup, find_packages
setup(
name="My Stuff",
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
还是应该是标识符?
setup(
name="MyStuff", # Or my_stuff
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
我可以在上面使用连字符吗?
setup(
name="my-stuff",
version="0.0.1.dev1",
packages=find_packages(),
test_suite='page_peel_tests'
)
此外,setuptools 和 distutils 之间的规则是否不同?
不能使用空格。名称不区分大小写,连字符和下划线是等效的,还有一些 "confusable" 字符被视为等效的其他情况。从 PEP 426 关于包命名:
As distribution names are used as part of URLs, filenames, command line parameters and must also interoperate with other packaging systems, the permitted characters are constrained to:
ASCII letters ( [a-zA-Z] ) ASCII digits ( [0-9] ) underscores ( _ ) hyphens ( - ) periods ( . )
Distribution names MUST start and end with an ASCII letter or digit.
setuptools 和 distutils 在这方面没有区别。
尽管不用担心 distutils; setuptools 是要走的路。那些动荡的日子结束了。截至 2013 年,"setuptools [is] the default choice for packaging"。这是打包工具 recommendations,虽然链接已损坏,但脚注提供了关于为什么 setuptools 更好的可靠信息,Pip 无论如何都会使用它进行安装。