2010-10-27 6 views
2

J'ai un main.py de fichier comme ceci:Python: 'node.py import' élève "Aucun module nommé py" -erreur

import node.py 
[my code...] 

et node.py comme ceci:

[more of my code] 

Lors de l'exécution main.py, je reçois cette erreur:

File "/home/loldrup/repo/trunk/src/src/main.py", line 2, in <module> 
    import node.py 
ImportError: No module named py 
+0

Quel tutoriel utilisez-vous? Où avez-vous vu le code comme ça? Pouvez-vous citer ou un lien vers un exemple de cela? –

Répondre

9

Vous devriez juste dire import node. Le . dans le nom fait python pense que vous voulez charger un sous-module nommé py du paquet node, d'où l'erreur. Tout cela est expliqué en détail dans le Python Tutorial.

+0

Non, alors j'obtiens nodes.append (nœud (k, positions [k], posChanendsD [k])) – user488736

+0

Ups, élément: "TypeError: l'objet 'module' n'est pas appelable" – user488736

+2

Eh bien, vous ne devriez pas avoir fonction qui a le même nom qu'un module. Si vous avez une classe 'node' dans le module' node', qualifiez le nom comme suit: 'node.node (k, positions [k], posChanendsD [k])'. –

-2

Un ami m'a aidé. Il se trouve que je vais utiliser:

from node import * 
+0

-1: Lisez ceci: http://docs.python.org/howto/doanddont.html#at-module-level. C'est une mauvaise solution. –

0

Si vous avez une fonction nommée node dans un module appelé node, la plus claire chose à faire est:

from node import node 

Cela ajoute le nom node au symbole local table et fait référence à la fonction node dans le module node.

Il est souvent moins confus si vous donnez le module et ses membres différents noms - bien que vous apprenez lorsque vous commencez à travailler avec la classe datetime dans le module datetime, ce n'est pas tellement confus que les piles fournies ne le font pas.

Questions connexes