2017-09-19 5 views
0

J'ai un script python qui utilise gentle pour transcrire du son.L'importation Python ne fonctionne que si elle est exécutée depuis le répertoire du paquet

Pour l'instant, je dois copier mon fichier dans le repo doux, puis je peux import gentle et utiliser gentle plus tard dans le code que je voudrais.

Cependant, je préférerais ne pas avoir à copier mon fichier dans le répertoire doux. J'ai essayé de changer l'importation de import gentle.gentle mais de toute façon je reçois l'erreur suivante lors de l'exécution de mon script à partir du répertoire parent:

Traceback (most recent call last): 
    File "process_text.py", line 6, in <module> 
    import gentle.gentle # or just import gentle 
    File "/usr/local/lib/python2.7/dist-packages/gentle/__init__.py", line 2, in <module> 
    from resources import Resources 
    File "/usr/local/lib/python2.7/dist-packages/gentle/resources.py", line 4, in <module> 
    from util.paths import get_resource, ENV_VAR 
ImportError: No module named util.paths 

est-il un moyen facile d'utiliser le module sans avoir à copier mon script dans son répertoire ? Je vous remercie!

+2

Cette question est difficile à répondre de façon directe, car il existe plusieurs façons d'aborder cette question. Mais ma recommandation serait de bien ** emballer ** votre script/projet, puis de déclarer 'gentle' comme une ** dépendance **, vous permettant d'installer votre propre paquet comme vous le feriez avec d'autres paquets Python. Jetez un oeil à https://packaging.python.org - en particulier la section [Packaging and Distributing Projects] (https://packaging.python.org/tutorials/distributing-packages/) pour plus de détails sur la façon de créer votre propre Python paquet. –

Répondre

1

De nombreux correctifs ont été apportés à ce problème. Pour plus d'informations, reportez-vous à la page du didacticiel https://docs.python.org/3/tutorial/modules.html.

En fait, si gentle est pip-installable vous pouvez essayer de l'installer à l'aide:

pip install --user gentle 

Ou vous pouvez créer un environnement soit conda ou virtualenv. Vous pouvez également définir votre variable d'environnement PYTHONPATH pour inclure le chemin dont vous avez besoin, par ex.

PYTHONPATH="/path/to/lib:$PYTHONPATH" python /path/to/script.py