J'ai un paquet awesomepkg
avec setup.py
. Je voudrais installer un exécutable binaire awesometool
à la ligne de commande avec le package lui-même lorsque les utilisateurs exécutent pip install awesomepkg
. J'ai compilé différentes versions d'OS pour awesometool
, qui vit dans un dossier bin/
à côté de setup.py
.Script d'installation du paquet Python installer l'exécutable binaire
Cependant, je ne peux pas trouver un bon moyen de configurer setup.py
. J'ai essayé les éléments suivants:
Utilisez le mot-clé dans
scripts=[]
setup()
. Malheureusement, le "exécutable" doit être un script python. Donc, j'essaye d'envelopper le binaire dans un script python en utilisantos.system('bin/awesometool')
pour déléguer. Il échoue également car le script wrapper est copié ailleurs par pip, donc il ne sait pas où se trouve le chemin relatifbin/awesometool
.Une autre solution potentielle est le mot-clé
data_files
. Toutefois, pour une raison quelconque, les fichiers de données ne sont pas copiés dans le répertoire d'installationsite_packages
, même si l'exécutionpython setup.py bdist_wheel
indique qu'ils ont été copiés.
Référence: https://docs.python.org/3/distutils/setupscript.html
parlant Peu de temps juste pour résumer, vous avez fait un script wrapper Python et ajouté à la keyworkd 'de scripts' de' setup() '. – konstunn
J'ai rencontré un problème ici, j'obtiens l'erreur 'Permission denied' en raison de la propriété du fichier binaire. Comment puis-je résoudre ce problème? – konstunn