2017-04-07 4 views
1

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 
+0

hast du deinen iPython-Kernel neu gestartet, was auch immer das ist? – Matthias

+0

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

+0

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

Antwort

0

Pls fügen Sie diese in der fast_layer.py vor dem Import cs231n.im2col_cython

import pyximport 
pyximport.install() 

Das Problem, das Sie sollten festgelegt werden erwähnt. (Aber ich traf ein anderes Problem über VC-Compiler ....)

Verwandte Themen