2016-07-02 3 views
1

Какой должен быть формат аргумента namesetuptools.setup()? Это бесплатная форма, поэтому я могу использовать пробелы на ней?Формат имени пакета Python с setuptools

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?

ответ

3

Вы не можете использовать пробелы. Имена нечувствительны к регистру, дефисы и подчеркивания эквивалентны, и есть несколько других случаев «смущаемых» символов, которые рассматриваются как эквивалентные. Из PEP 426 на упаковке именовании:

Как имена распределения используются в качестве части URL-адресов, имен файлов, командных параметров линии, а также должны взаимодействовать с другими упаковочными системы, разрешенные символы вынуждены:

ASCII letters ([a-zA-Z]) 
ASCII digits ([0-9]) 
underscores (_) 
hyphens (-) 
periods (.) 

Названия дистрибутивов ДОЛЖНЫ начинать и заканчивать буквой или цифрой ASCII.

Нет никакой разницы в этом для setuptools и distutils.

Не беспокойтесь о distutils; setuptools - это путь. Эти бурные дни закончились. С 2013 года «setuptools [является] выбором по умолчанию для упаковки». Вот инструмент упаковки recommendations, и, хотя ссылки сломаны, сноски содержат достоверную информацию о том, почему setuptools лучше, и Pip будет использовать его для установки в любом случае.