Как я могу добавить сценарии постустановки к easy_install / setuptools / distutils?

Ниже, используя отражение, кажется мне лучшим вариантом с учетом общедоступных свойств, так как с этим вам не нужно беспокоиться о добавлении / удалении свойств (хотя это не так распространенный сценарий). Это, как мне показалось, лучше работает. (По сравнению с секундомером).

    public int getHashCode()
    {
        PropertyInfo[] theProperties = this.GetType().GetProperties();
        int hash = 31;
        foreach (PropertyInfo info in theProperties)
        {
            if (info != null)
            {
                var value = info.GetValue(this,null);
                if(value != null)
                unchecked
                {
                    hash = 29 * hash ^ value.GetHashCode();
                }
            }
        }
        return hash;  
    }
32
задан orestis 31 October 2008 в 21:43
поделиться

1 ответ

Это зависит от того, как пользователь устанавливает Ваш пакет. Если пользователь на самом деле выполняет "setup.py установку", это довольно легко: Просто добавьте, другая подкоманда к команде установки (скажите, install_vim), чей выполненный () метод скопирует файлы, которые Вы хотите в местах, где Вы хотите их. Можно добавить подкоманду, чтобы установить sub_commands, и передать команду в установку ().

, Если Вы хотите сценарий постустановки в двоичном файле, это зависит от типа двоичного файла, который Вы создаете. Например, bdist_rpm, bdist_wininst, и bdist_msi имеют поддержку сценариев постустановки, потому что базовая упаковка форматирует сценарии постустановки поддержки.

bdist_egg не поддерживает механизм постустановки дизайном:

http://bugs.python.org/setuptools/issue41

8
ответ дан Martin v. Löwis 11 October 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: