在已经导入的文件中导入第二个文件会导致错误?

时间:2018-11-13 20:32:28

标签: python-3.x python-import importerror

好吧,所以我用谷歌搜索了一个 ton ,并尝试了stackoverflow上列出的解决方案...但没有一个起作用。

如果有的话,我在anaconda。我有一个名为“ mainwithai.py”的python文件。在该文件中,我这样做:

from SAI import AI_Player

哪个工作正常。 SAI.py与mainwithai位于同一目录中。现在,在同一目录中,有一个名为“ getboards.py”的文件。

我尝试以相同的方式在SAI中导入此文件,在mainwithai中导入不是,但失败了。我根据不同的答案尝试了几种不同的方法,但均以失败告终:

from . import getboards
import getboards
from .. import getboards
from getboards import *

getboards没有类,如果有的话(SAI.py有一个类)。只是功能的集合和这些功能需要的一些随机词典。同样,如果我尝试在mainwithai或SAI中进行导入,同样的错误也没关系。

SAI为什么起作用,而getboards失败?我发现该文件夹中有mainwithai和sai的.pyc文件;我也需要其中之一来获得Getboard吗?

我已经读过有关__init__.py的内容,但这听起来像是与我尝试做的事情完全不同的事情;我只想在mainwithai上按f5键,就可以了,而不是打包。

编辑: 添加ls的输出

 Volume in drive D is YSTORAGE
 Volume Serial Number is 60BA-9F15

 Directory of D:\AllStuff\writtenworks\StrategoProject

07/27/2018  11:42 AM    <DIR>          .
07/27/2018  11:42 AM    <DIR>          ..
01/26/2018  10:14 AM                66 .gitattributes
01/29/2018  11:05 AM                70 .gitignore
11/06/2018  09:17 AM    <DIR>          __pycache__
12/29/2017  12:26 AM             7,812 AI.py
01/30/2018  11:56 AM    <DIR>          AI_Mode
01/02/2018  03:22 PM    <DIR>          backups
12/29/2017  12:42 AM               231 conf.cfg
01/31/2018  09:52 AM    <DIR>          Database
12/31/2017  09:45 PM               336 empty.txt
12/31/2017  09:28 PM               336 gamestate.txt
11/13/2018  02:57 PM            16,352 getboards.py
12/31/2017  06:27 PM           125,862 gurobi.log
01/26/2018  10:14 AM            35,119 LICENSE
11/13/2018  03:41 PM            34,443 mainwithai.py
01/02/2018  11:11 PM            20,259 mainwithai.pyc
11/08/2018  02:06 PM            16,268 mcts.py
01/24/2018  01:11 PM                 0 mintemps.txt
12/29/2017  04:26 PM             1,322 model.ilp
11/08/2018  09:11 AM         8,252,424 neuralstrategoALL.h5
12/31/2017  06:08 PM             6,827 optimization_setup.py
01/29/2018  10:40 AM    <DIR>          optimizedsetups
01/26/2018  10:14 AM                18 README.md
09/08/2017  03:05 PM    <DIR>          resources
11/13/2018  03:40 PM            12,747 SAI.py
01/26/2018  01:08 PM             5,666 SAI.pyc
11/06/2018  10:51 AM             8,872 SAIbackup.txt
11/09/2018  11:10 AM             4,226 strategoneural.py
12/31/2017  09:06 PM               337 testtest.txt
12/31/2017  09:00 PM               336 texttext.txt
11/07/2018  04:59 PM             4,992 xmlparse2.py
              24 File(s)      8,554,921 bytes
               8 Dir(s)  20,052,148,224 bytes free

编辑2:这是所有三个文件顶部的所有导入:

mainwithai:

# -*- coding: utf-8 -*-
import configparser
import sys, time, pygame
from pygame.locals import *
import random
import re
from SAI import AI_Player

SAI:

# -*- coding: utf-8 -*-
import random
import numpy as np
import keras
from keras.models import load_model
from copy import copy
import re

获取板:

# -*- coding: utf-8 -*-
import numpy as np
from copy import copy, deepcopy

除了顶部以外,我什么都不导入,我检查了所有这些(当然,我当然搜索了文件),所以我认为这不是循环引用。他们唯一的共同点是,getboards的字典与SAI的名称相同,但除此之外,我什至检查了所有函数的名称。什么都没有。

编辑3:将import getboards放入SAI.py的Stacktrace

runfile('D:/AllStuff/writtenworks/StrategoProject/SAI.py', wdir='D:/AllStuff/writtenworks/StrategoProject')
Traceback (most recent call last):

  File "<ipython-input-895-2df6678e9989>", line 1, in <module>
    runfile('D:/AllStuff/writtenworks/StrategoProject/SAI.py', wdir='D:/AllStuff/writtenworks/StrategoProject')

  File "C:\Users\ylwaller\AppData\Local\Continuum\anaconda2\envs\sdev3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 678, in runfile
    execfile(filename, namespace)

  File "C:\Users\ylwaller\AppData\Local\Continuum\anaconda2\envs\sdev3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 106, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "D:/AllStuff/writtenworks/StrategoProject/SAI.py", line 8, in <module>
    import getboards

ModuleNotFoundError: No module named 'getboards'

0 个答案:

没有答案