在python中有一个循环导入吗?

时间:2017-02-14 09:27:07

标签: python python-3.x

我试图将python项目从v2.x移植到v3.x

python的一个主要变化是导入系统。

我现在在尝试加载我的python笔记本时遇到错误,如下所示

package/
    __init__.py
    bh_tsne.py

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

错误输出

---------------------------------------------------------------------------
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'
奇怪的是......我认为问题是循环依赖..但bh_tsne并不依赖于任何实用程序..循环性可能来自我的utils.list_all_files然后是{{ 1}}?

bh_tsne进口

__init__.py

修改

这可能是多余的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 os.path根本原因吗?

2 个答案:

答案 0 :(得分:1)

我最终只是从它的源上游项目升级了一个项目中使用的包装器。原主人做了升级。

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

然后导入工作

import utils.bhtsne as bhtsne

答案 1 :(得分:0)

我发现bh_tsne似乎不适用于python 3.另外一个版本(Multicore TSNE)也适用于python 2.7