Ich bin mir nicht sicher, ob der Titel dieser Frage korrekt ist, Mods können Sie gerne ändern.Der Import funktioniert nicht, wenn sich die Datei im selben Verzeichnis befindet und das Skript aufruft
Ich arbeite durch cs231n Convolutional Neural Networks für Visual Recognition Kurs online und ich habe einen seltsamen Fehler getroffen. Dies ist mein erster Versuch bei einer echten Python-Programmierung, also könnte es ein einfacher Fehler sein oder etwas Komplizierteres.
Ich verwende Python 2.7, Anaconda, und Windows 7.
Beim Versuch, ein Skript, das ich die folgende Fehlermeldung zu laufen;
Mein bisheriges Verständnis ist, dass dies auftritt, weil dies fehlschlägt (und die Ausnahme aufruft);
try:
from cs231n.im2col_cython import col2im_cython, im2col_cython
from cs231n.im2col_cython import col2im_6d_cython
except ImportError:
print 'run the following from the cs231n directory and try again:'
print 'python setup.py build_ext --inplace'
print 'You may also need to restart your iPython kernel'
Ich habe versucht, herauszufinden, warum das der Fall sein kann. Zunächst muss ich setup.py ausführen, um im2col_cython.pyx in andere Dateien zu verwandeln. Dies scheint zu laufen, hat aber irgendwann die Warnung;
warning: extension name 'im2col_cython' does not match fully qualified name 'cs231n.im2col_cython' of 'im2col_cython.pyx'
Meine Bezifferung hier ist, dass es ein Problem mit der Tatsache zu tun, ist, dass die Ordner-Struktur I wie folgt aussieht haben; Zuordnung 2 -> cs231n
In cs231n befinden sich die Dateien setup.py und im2col_cython.pyx. Ich habe Cython installiert, und ich habe VC für Python2.7 installiert. Wenn ich setup.py ausführe, erstellt 2 neue Dateien;
im2col_cython.c
im2col_cython.pyd
Aber ich habe keine Ahnung, ob es das ist, was es tun soll oder so. Ich bin mit diesem Wissen weit über meinem Kopf (0 Python Wissen), aber ich bin scharf darauf zu lernen!
EDIT 1 Das Skript, das im2col_cython ist here
Die im2col_cython Datei ist here
EDIT 2
Wenn einschließlich der folgenden in der Ausnahmeklausel importiert;
import traceback; traceback.print_exc()
Ich bekomme diese Ausgabe;
Traceback (most recent call last):
File "fast_layers.py", line 3, in <module>
from cs231n.im2col_cython import col2im_cython, im2col_cython
ImportError: No module named cs231n.im2col_cython
hast du deinen iPython-Kernel neu gestartet, was auch immer das ist? – Matthias
Diese ähneln ähnlichen Fehlern http://stackoverflow.com/questions/39398154/run-cython-python-setup-py-build-ext-inplace-cs231n http://stackoverflow.com/questions/38993332/global-name -col2im-6d-cython-ist-nicht-definiert-cs231n, aber ich weiß nicht, wie nützlich die Antworten tatsächlich sind. Es könnte sich trotzdem lohnen, sie anzuschauen, wenn Sie es nicht schon getan haben. – DavidW
auch, haben Sie die Datei 'cs231n.im2col_cython' selbst angeschaut und sehen, ob es einen Grund dafür geben kann, dass' im2col_cython' nicht definiert ist? – Matthias