导入找不到相同文件夹的文件



import 找不到相同的文件。现在,我在文件夹A中有a,b,c文件。 提交一个阅读的b&c。首先,我在文件中写了一个喜欢

import b
import c
・
  ・
  ・   
x = b_method()
y = c_method()

但是,发生错误"没有名为b的模块"。接下来,我在文件中写了一个喜欢

from A import b
from A import c
   ・
 ・
 ・   
x = b_method()
y = c_method()

但是,当我运行这个文件时,终端说

ImportError: No module named 'A'     

那么,如何在文件a中读取文件b&c? 我该如何解决这个问题? 我添加了

import os
import sys
file_dir = os.path.dirname(__file__)
sys.path.append(file_dir) 

到文件 A,但它不起作用。

我的项目结构是

test   (parent app)
|--- A
|
---- a
---- b
---- c

回溯 说

Traceback (most recent call last):
File "a.py", line 10, in <module>
from A import b
ImportError: No module named 'A'

当我写import b时, 回溯 说

Traceback (most recent call last):
File "a.py", line 58, in <module>
xxx = b.parse(user, id)
NameError: name 'b' is not defined

整个 a.py 是

import sys
import os
import b
import c

LOG_FILENAME = 'excel.log'
file_dir = os.path.dirname(__file__)
sys.path.append(file_dir)
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=2000000, backupCount=5, encoding='utf-8')
handler.setFormatter(
logging.Formatter('%(asctime)s %(levelname)s %(name)s %(message)s'))
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logger.addHandler(console)
# READ
def read_config():
f = codecs.open('config.json', 'r', 'utf-8')
text = f.read()
config = json.loads(text)
return config
try:
logger.debug('start.')
logger.info("--------------------------------")
logger.info("Excelファイル読込処理を開始します。")
logger.info("--------------------------------")
config = read_config()
output_dir = config['output_dir']
logger.info("クライアントのデータを読み込みます。")
book_name = config['client']['file_name']
regions = config['client']['regions']
#clientsが空だと、jsonがoutputされない
xxx = b.parse(user, id)
yyy = c.parse(name,mail)
logger.info("--------------------------------")
# ERROR
except:
logger.exception('exception occurred.')
print(input("error"))
sys.exit(-1)
logger.debug('end.')
print(input("finish"))
sys.exit(0)

确保两件事: -- 您尝试导入的文件与您正在处理的文件位于同一文件夹/目录中 - 这些文件是你可以与python一起使用的东西(你应该使用.py文件(

确保这一点后,请在空闲时尝试此操作:

>>> import b
>>> import c
>>> c
>>> b

完成后,python应该给你一条消息,告诉你特定的模块

在目录中__init__.py一个空文件,Python可以识别允许您从中导入的目录。然后你使用

import b
import c

最新更新