Reçu 'impossible de trouver le module' __main__ 'dans' & lt; packageName & gt; ' avec un paquet python
Je suis en train de sortir mon premier paquet Python dans la nature et j'ai réussi à la configurer sur PyPi et capable de faire un pip install
. Lorsque j'essaie d'exécuter le package via la ligne de commande ($ python etlTest
), je reçois l'erreur suivante:
/usr/bin/python: can't find '__main__' module in 'etlTest'
Lorsque j'exécute le code directement à partir de mon IDE, il fonctionne sans problème. J'utilise Python 2.7 et ont __init__.py
scripts si nécessaire. Que dois-je faire pour obtenir ce travail?
source d'informationauteur OpenDataAlex
Vous devez vous connecter pour publier un commentaire.
Je peux facilement reproduire votre problème, en fait, même sans l'aide de votre colis:
De sorte que vous ne sont pas à appeler votre bibliothèque, vous êtes juste de donner l'interpréteur Python une inexistant nom du script, ce qui dans le cas où il y a un même nom de répertoire (non sensible à la casse) dans le répertoire de travail, il essaie de l'exécuter.
J'ai pu installer le paquet depuis PyPi très bien et peuvent importer très bien, mais il ne semble pas être tout point d'entréerien d'utile est exporté au plus haut niveau et pas de scripts exécutables sont ajoutés à Python bin:
De l'exécution de l'etlTest.py directement comme suggéré dans Démarrage rapide de vos documents ne fonctionne pas non plus:
Je dirais que votre forfait n'est pas adapté pour ditribution encore. Vous pourriez vouloir pour nettoyer certaines dépendances sur votre environnement de développement et de lire sur
setuptools
points d'entrée d'assurer une bonne ligne de commande exécutables avec votre colis. Aussi, il ne faut pas courir dans le mode de débogage par défaut si elle n'est pas une sorte de version testing.J'ai récemment eu le même problème et finalement trouver la solution par moi-même.
De sorte que l'erreur a dit, j'ai ajouté un fichier
__main__.py
dans le même chemin que mon__init__.py
.À l'intérieur de
__main__.py
j'ai ajouté le code suivant :main()
était la fonction principale de mon code. Et ça fonctionne maintenant.ici mon répertoire: