导入无法找到相同的文件夹'档

时间:2017-08-23 05:36:14

标签: python

导入找不到相同的文件。现在,我在文件夹A中有a,b,c文件。 提交读取b& c的文件。首先,我在文件中写了一个像

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

但是,错误发生了#34;没有名为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) 

提交文件,但不起作用。

我的项目结构是

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

Traceback说

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

当我写import b时, Traceback说

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)

2 个答案:

答案 0 :(得分:0)

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

在确定之后尝试空闲时间:

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

执行该python之后,应该给您一条消息,告诉您有关特定模块的信息

答案 1 :(得分:0)

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

import b
import c