Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Comment stocker et accéder aux ressources ?

+4 votes

Je développe une application utilisant des ressources externes (typiquement des images pour une application graphique).

Comment faire pour que les ressources soient accessibles par le programme, quelque soit la manière dont l'application est installée ?

En particulier:

  • En utilisant pip install -e my_app (installation en mode développement)
  • En utilisant pip install my_app (installation "classique")
  • Avec python my_app/ (exécution du package présent dans le dossier local)

Les chemins de fichier semblent varier entre chaque cas.

demandé 21-Jan-2015 par BAKfr (156 points)
edité 21-Jan-2015 par BAKfr

Est-ce que tu peux rajouter des tags à ta question STP, ça permet de pouvoir mieux l'identifier, de l'afficher parmi les questions reliées, etc.

je ne comprends pas bien la question, en général, je met les contenu static ou je veux, puis je les déclare dans manifest.in / setup.py

J'ai édité ma question, ça devrait être plus clair.

1 Réponse

+3 votes
 
Meilleure réponse

Tu peux les mettre où tu veux dans l'arborescence de ton module. Ensuite utilise le module pkg_resources pour les récupérer.

Ex: ton module s'appelle 'monmodule' et tu as mis des resources dans 'monmodule/resources/'

pour récupérer ouvrir un fichier dans tes resources:

import pkg_resources
monfichier = open(pkg_resources.resource_filename('monmodule', 'resources/fichier.txt'))

N'oublie pas d'inclure tes fichiers non python dans ton fichier MANIFEST.in qui doit être à côté du fichier setup.py.

Il est possible que ton packet ne soit plus zip_safe du coup, ajoute donc zip_safe=False dans les options de ton setup.py.

répondu 21-Jan-2015 par Shadock (286 points)
sélectionné 16-Avr-2015 par BAKfr
...