Я пытаюсь распространять mplstyle
, которое я написал, так, чтобы я мог легко поделиться им. Он сводится к копированию текстового файла в правильном направлении конфигурации (известном для любой архитектуры) во время установки. Я хочу установить с помощью python setup.py install
или pip install ...
. В настоящее время мне кажется, что ни один из двух способов не является надежным (см. Текущий подход ниже).
- Установка с помощью
pip install ...
, похоже, вообще не вызывает копирование. Установка с помощью
python setup.py install
работает на моей машине хорошо, но ReadTheDocs выдает следующую ошибку:python setup.py install --force running install error: [Errno 2] No such file or directory: u'/home/docs/.config/matplotlib/stylelib/goose.mplsty
Как правильно копировать файлы конфигурации во время установки надежным способом?
Текущий подход
Структура файла
setup.py
goosempl/
| __init__.py
| stylelib/
| goose.mplstyle
| ...
setup.py
from setuptools import setup
from setuptools.command.install import install
class PostInstallCommand(install):
def run(self):
import goosempl
goosempl.copy_style()
install.run(self)
setup(
name = 'goosempl',
...,
install_requires = ['matplotlib>=2.0.0'],
packages = ['goosempl'],
cmdclass = {'install': PostInstallCommand},
package_data = {'goosempl/stylelib':['goosempl/stylelib/goose.mplstyle']},
)
goosempl/__init__.py
def copy_style():
import os
import matplotlib
from pkg_resources import resource_string
files = [
'stylelib/goose.mplstyle',
]
for fname in files:
path = os.path.join(matplotlib.get_configdir(),fname)
text = resource_string(__name__,fname).decode()
print(path, text)
open(path,'w').write(text)
Загрузить в PyPi
python setup.py bdist_wheel --universal
twine upload dist/*