2017-02-14 2 views
0

ich in dem Hafen über ein Python-Projekt von v2.x versucht,ich einen Kreis Import in Python habe

eine der wichtigsten Änderungen in Python V3.X wurde das Importsystem.

ich jetzt sehe einen Fehler, wenn versucht, meine Python-Notebook zu laden wie folgt

package/ 
    __init__.py 
    bh_tsne.py 

Collect Samples.ipynb //imports utils.list_all_files, sees error 

Fehlerausgabe

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-2-1339232cd15c> in <module>() 
     1 import numpy as np 
     2 from os.path import join 
----> 3 from utils.list_all_files import list_all_files 
     4 from multiprocessing import Pool 

/~/AudioNotebooks/utils/__init__.py in <module>() 
     4 from . import show_array 
     5 from . import make_mosaic 
----> 6 from . import bh_tsne 
     7 from . import normalize 
     8 from . import mkdir_p 

ImportError: cannot import name 'bh_tsne' 

seltsam .. Ich denke, das Problem ist eine kreisförmige Abhängigkeit .. aber bh_tsne verlässt sich nicht auf irgendwelchen Dienstprogrammen .. könnte die Zirkularität von meinem utils.list_all_files und dann dem __init__.py kommen?

bh_tsne Importe

from argparse import ArgumentParser, FileType 
from os.path import abspath, dirname, isfile, join as path_join 
from shutil import rmtree 
from struct import calcsize, pack, unpack 
from subprocess import Popen 
from sys import stderr, stdin, stdout 
from tempfile import mkdtemp 
from platform import system 
from os import devnull 
import numpy as np 
import os, sys 
import io 

bearbeiten

Ist das redundante os.pathjoin vielleicht die Ursache?

+0

wo 'def bh_tsn (' liegt – Lazykiddy

+0

@Lazykiddy hinzugefügt, dank – Erik

Antwort

1

ich am Ende nur den Wrapper aktualisieren, die in einem Projekt verwendet wurde, von ihm ist Quelle vorgelagertes Projekt. Der ursprüngliche Besitzer hatte Upgrades vorgenommen.

https://github.com/lvdmaaten/bhtsne/blob/master/bhtsne.py

und der Import arbeitete danach als

import utils.bhtsne as bhtsne

0

Ich fand heraus, dass bh_tsne scheint 3. mit Python nicht arbeiten Auch eine andere Version (Multicore TSNE) arbeiten nur mit Python 2.7 als auch

+0

Das lustige ist, die neueste Version des Wrappers wurde aufgerüstet und funktioniert gut – Erik