###前提・実現したいこと
Pythonでモジュール分けしたプログラムを作っています
しかし,ひとつしたのディレクトリにあるプログラムをロードできません
関係ないかもしれませんが,LOAD.pyはシングルトン実装にしてあり,Janomeのロード時間を一括するために作りました
###発生している問題・エラーメッセージ
Main.pyからINPUT/DATABANK/LOAD.pyをインポートしたいが,
Traceback (most recent call last):
File "C:/.../Main.py", line 16, in <module>
START()
File "C:/.../Main.py", line 11, in START
__BOOT_UP()
File "C:/.../Main.py", line 4, in __BOOT_UP
boot=LOAD()
TypeError: 'module' object is not callable
が出てしまう
エラーメッセージ Main.py │ __init__.py │ ├─.idea │ │ .name │ │ AI_SYSTEM.iml │ │ misc.xml │ │ modules.xml │ │ workspace.xml │ │ │ └─inspectionProfiles │ Project_Default.xml │ ├─INPUT │ │ Voice_to_String.py │ │ __init__.py │ │ │ ├─DATABANK │ │ │ artist.py │ │ │ LOAD.py │ │ │ MusicDJ.py │ │ │ wikipedia_Teinei.py │ │ │ __init__.py │ │ │ │ │ └─__pycache__ │ │ LOAD.cpython-36.pyc │ │ __init__.cpython-36.pyc │ │ │ └─__pycache__ │ __init__.cpython-36.pyc │ ├─LOGIC │ COMMNDER.py │ __init__.py │ ├─OUTPUT │ PlayAudio.py │ PRINT.py │ __init__.py │ └─__pycache__
###該当のソースコード
python3.6
1##Main.py 2 3def __BOOT_UP(): 4 from INPUT.DATABANK import LOAD 5 boot=LOAD() 6 7 8def START(): 9 import sys 10 print(sys.path) 11 print("BOOT_START") 12 __BOOT_UP() 13 from LOGIC.COMMNDER import COMMNDER 14 COMMNDER() 15 16if __name__ == "__main__": 17 START() 18
Python3.6
1#LOAD.py 2import threading 3from janome.tokenizer import Tokenizer 4 5class LOAD(): 6 7 _instance=None 8 _lock=threading.Lock() 9 Mecab_instance=None 10 11 def __init__(self): 12 print("ロード完了") 13 14 def __new__(cls): 15 with cls._lock: 16 if cls._instance is None: 17 cls._instance=super().__new__(cls) 18 ##ここからロードゾーン 19 global Mecab_instance 20 Mecab_instance=Tokenizer(mmap=True) 21 22 23 return cls._instance 24 25 def getMecab(self): 26 return Mecab_instance
###試したこと
様々なサイトをみたりしたが,インポート機構がいまいちわからない
参考サイト:https://www.lifewithpython.com/2015/05/python-import.html
Pythonをはじめたばかりなので,わかりやすく説明いただけれたら幸いです
###補足情報(言語/FW/ツール等のバージョンなど)
IDEはPycharmー2017.03,python3.6


回答2件
あなたの回答
tips
プレビュー