Есть ли способ разместить файлы стилей Matplotlib (* .mplstyle) в PyPI? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть репозиторий на GitHub, который содержит несколько файлов стилей Matplotlib (*.mplstyle файлы), и я хотел бы разместить его на PyPI.org.

Моя структура каталогов выглядит следующим образом:

|-- README.md
|-- setup.py
|-- styles/
    |-- style1.mplstyle
    |-- style2.mplstyle
    |-- style3.mplstyle
    |-- subdir/
        |-- substyle1.mplstyle

Мой setup.py файл выглядит следующим образом:

""" Install Matplotlib style files.

This file is based on a StackOverflow answer:
https://stackoverflow.com/questions/31559225/how-to-ship-or-distribute-a-matplotlib-stylesheet

"""

import atexit
import glob
import os
import shutil
import matplotlib
from setuptools import setup
from setuptools.command.install import install

def install_styles():

    # Find all style files
    stylefiles = glob.glob('styles/**/*.mplstyle', recursive=True)

    # Find stylelib directory (where the *.mplstyle files go)
    mpl_stylelib_dir = os.path.join(matplotlib.get_configdir() ,"stylelib")
    if not os.path.exists(mpl_stylelib_dir):
        os.makedirs(mpl_stylelib_dir)

    # Copy files over
    print("Installing styles into", mpl_stylelib_dir)
    for stylefile in stylefiles:
        print(os.path.basename(stylefile))
        shutil.copy(
            stylefile, 
            os.path.join(mpl_stylelib_dir, os.path.basename(stylefile)))

class PostInstallMoveFile(install):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        atexit.register(install_styles)

setup(
    name='myrepo',
    package_data={
        'styles': [
            "style1.mplstyle",
            "style2.mplstyle",
            "style3.mplstyle",
            "subdir/substyle1.mplstyle",
        ]
    },
    include_package_data=True,
    install_requires=['matplotlib',],
    cmdclass={'install': PostInstallMoveFile,},
)

Это позволяет установить пакет через:

pip install git+https://github.com/<myrepo>.git

Но это не так работать, когда я ставлю его на PyPI. (Я могу загрузить его в PyPI и pip install из PyPI, но файлы *.mplstyle не копируются на мой компьютер, и они недоступны, когда я запускаю Python.) Любые идеи о том, что я мог бы добавить / изменить, чтобы заставить его работать?

...