导入找不到相同的文件。现在,我在文件夹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)
答案 0 :(得分:0)
确保两件事: - 您尝试导入的文件与您正在使用的文件位于同一文件夹/目录中 - 文件是你可以使用python(你应该使用的.py文件)
在确定之后尝试空闲时间:
>>> import b
>>> import c
>>> c
>>> b
执行该python之后,应该给您一条消息,告诉您有关特定模块的信息
答案 1 :(得分:0)
在目录中创建一个空文件__init__.py
,Python可以识别允许您导入的目录。然后你用
import b
import c