2016-05-28 7 views
-4

Ich habe keine Ahnung, was diesen Fehler verursacht, das ist so einfach wie möglich, aber SO gibt mir Hinweis, dass meine Frage nicht ihren Qualitätsstandards entspricht, damit ich muss dieses längere Intro posten."kein Modul namens ..." bei der Ausführung dieses Python-Codes

#=== 
# my_script.py 
import myModule 

#=== 
# myModule\__init__.py 
import sys 
from my_def import * 

class MyModule: 
    def __init__(self): 
    pass 

#=== 
# myModule\my_def.py 
def my_def(): 
    pass 

Traceback (most recent call last): 
    File "my_script.py", line 1, in <module> 
    import myModule 
    File "D:\test\myModule\__init__.py", line 2, in <module> 
    from my_def import * 
ImportError: No module named 'my_def' 
+0

Haben Sie diese genaue Frage nicht vor ein paar Minuten gestellt? [Ja] (http://Stackoverflow.com/q/37501932/3001761), und es ist nicht so, dass du es viel verbessert hast; es ist nicht nur ein längeres Intro, das benötigt wird, es ist eines, das das Problem erklärt. – jonrsharpe

+0

Stellen Sie sicher, dass Ihr ['PYTHONPATH'] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH) den Pfad zu Ihrem Modul enthält. – Jens

Antwort

1

In __init__.py, eine . vor my_def hinzufügen. Die . bedeutet, dass es nach der Datei im selben Ordner wie das Skript selbst suchen sollte, anstatt relativ zu my_script.py.

from .my_def import * 
1

Sie können dies versuchen:

sys.path.append("path_of_script")