python setup.py configuration pour installer les fichiers dans des répertoires
Je veux créer un setup.py qui serait d'installer mes fichiers dans des répertoires. J'ai un certain préfixe, où je voudrais obtenir le résultat suivant:
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
Mon projet initial est le suivant:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
Quelle serait la meilleure façon d'y parvenir? Je voudrais être en mesure de l'installer plus tard avec quelque chose comme:
python setup.py install --prefix=/my/prefix
Je peux obtenir "package" bien installé dans le bon répertoire lib/pythonX.Y/site-packages sous --prefix est l'emplacement par défaut. Mais est-il un moyen propre à obtenir script.sh dans "bin" et d'autres fichiers python dans "libexec"? Le seul moyen que je vois pour l'atteindre serait de copier manuellement les fichiers dans mon setup.py script. Peut-être il est plus propre et plus standard de la manière de le faire?
(edit)
Solution
J'ai fini avec setup.py comme ça:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
Bien sûr, vous pouvez itérer sur tous les fichiers python pour libexec, mais je n'ai que 2-3 python fichiers dont j'ai besoin.
(edit2)
En outre, je peux avoir de l'installation.cfg avec les éléments suivants:
[install]
prefix=/my/prefix
et au lieu de python setup.py install --prefix=/my/prefix
que je peux le faire:
python setup.py install
OriginalL'auteur Ago | 2012-05-05
Vous devez vous connecter pour publier un commentaire.
Les scripts sont traitées par l'utilisation de la
scripts
paramètre à la fonction de configuration. Pour libexec vous pouvez les traiter comme des fichiers de données et l'utilisation de données d'options.Je ne suis pas sûr de comment cela pourrait fonctionner avec un
--prefix
option, je n'ai jamais essayé.Vous pouvez prendre l'option par défaut dans la configuration.fichier cfg. C'est dans .ini option de style de fichier avec des sections et des paires nom-valeur. Options de ligne de commande directement de traduire des options (supprimer
--
, etc).fonctionne comme un charme, merci!
OriginalL'auteur Keith