Je veux créer un package PIP qui dépend de certains fichiers spécifiques au système d'exploitation:
Disons qu'il y a: p>
Je ne veux pas inclure les trois archives dans un projet d'emballage, mais téléchargez-les de manière dynamique lors de l'installation de My-package code> basée sur le système d'exploitation de l'utilisateur. Comment puis je faire ça ? Où devrais-je mettre le code responsable du téléchargement / décompression de ces fichiers? P>
mon
3 Réponses :
première réponse est abandonner et utiliser Seconde réponse consiste à créer des packages distincts tels que "MyLib-Mac", "MyLib-Win", "MyLib-Linux". p>
Troisième réponse consiste à utiliser l'approche "Console_Script". Cela va casser. Bien qu'il génère des fichiers .exe sur Windows, il a des modes de défaillance impairs. En outre, certains utilisateurs ne seront pas en mesure de télécharger de manière dynamique des fichiers car ils travaillent à partir d'un clone interne d'un référentiel. Le code d'exécution au hasard à partir d'Internet sur la production peut effrayer les gens. P>
J'espère que cela vous aidera! p> seugools code>. Regarde Dépendances spécifiques à la plate-forme pour un bon écrire de quoi faire. P>
Une solution pourrait être de publier une plate-forme spécifique python roues em> de votre projet. Les fichiers spécifiques à la plate-forme pourraient être ajoutés aux distributions pré-conçues via une commande Custom Seruptools em> (probablement une sous-commande de construction em>, ou peut-être installez em >) / p>
Les dépendances spécifiques à la plate-forme pourraient être conservées dans des projets de python distincts (emballages autour des paquets de données uniquement), puis requis dans le projet principal comme ci-dessous:
# setup.cfg # ... [options] install_requires = my_package_win_amd64 ; platform_system=="Windows" and platform_machine=="x86_64" my_package_linux-x86_64 ; platform_system=="Linux" and platform_machine=="x86_64"
et comment puis-je accéder au contenu de l'emballage de mon-package code>?
Il y a quelques bonnes solutions, telles que pkg_resources < / Code>
ou même mieux ImportLib .Resources code> dans la bibliothèque standard
( Quelques exemples ici ).
Merci Monsieur! Je vais essayer cette approche