J'ai créé une installation de paquet Python avec un setup.py, et je veux qu'il copie un fichier de données dans le dossier (créé pour l'occasion) ~/.did. Le problème est que je dois appeler setup.py avec des droits sudo, car il écrit dans /usr/local/... Ainsi, lorsque mon fichier de données est copié dans ~/.did, seul l'utilisateur root a accès en écriture au fichier.
J'ai donc décidé d'ajouter un appel à os.chmod() après la fonction setup(), mais j'aimerais savoir si quelqu'un avait une manière plus propre de le faire.
Voici mon fichier setup.py :
#!/usr/bin/env python
from distutils.core import setup
import os
home=os.path.expanduser('~')
setup(name='did',
version='1.0',
description='Téléchargeur d'images quotidien',
author='Luc Mazon',
author_email='mon@mail.com',
url='',
license='GNU GPL v3',
scripts=['did'],
packages=['didlib'],
data_files=[
('/usr/share/man/man1', ['doc/did.1.gz']),
(home+'/.did', ['did.xml'])
]
)
os.chmod(home+'/.did/did.xml', 0666)
Comme did.xml n'est pas un fichier Python, j'ai également créé un fichier MANIFEST.in avec la ligne suivante :
include did.xml
La structure globale de mon paquet est la suivante :
did-1.0
| didlib
| | __init__.py
| | diversfichierspy.py
| doc
| | -did.1.gz
| MANIFEST.in
| did.xml
| did
| setup.py