Добавление пользовательского класса команд для установки в setup.py больше не копирует файлы данных

Я создал пакет python с методом установки из setuptools, и он работал безупречно.

У меня было это, и это работало отлично:

setup(
      name='whatever',
      version='1.0.0',
      packages=find_packages(),
      license='MIT',
      author='Sheldan',
      install_requires=['psutil', 
                        'itsdangerous', 
                        'flask', 
                        'python-crontab', 
                        'enum34', 
                        'requests', 
                        'kitchen',
                        'python-dateutil',
                        'flask-login'],
      include_package_data=True,
      data_files=get_data_from_folder('logs') + get_data_from_folder('resources')
)

Затем мне нужно было выполнить некоторые шаги после установки. После некоторого исследования, кажется, мне пришлось отменить команду, которая выполняется. Итак, я добавил cmdclass={'install': install} к настройке сверху и добавил класс с именем install, который выглядит следующим образом:

class install(_install):
def run(self):
    _install.run(self)
    self.execute(_post_install, (self,),
                 msg="Running post install task")

_post_install это просто метод, который выполняет шаги после установки.

Но по какой-то причине после того, как я добавил команду, файлы, которые должны быть скопированы через data_files, теперь больше копируются, и я увидел, что целевой путь больше не 'yt_crawler-1.0.0-py.2.7-egg', но просто 'yt_crawler'

После некоторых исследований кажется, что 'bdist_egg' Команда не выполнена.

1 ответ

Я исправил это, вызвав self.do_egg_install() вместо _install.run(self).

Другие вопросы по тегам