質問編集履歴
1
質問内容を記載させて頂きました。また改めて見直し無駄な文章を削除致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
Pyrhon:3.9.13
|
6
6
|
|
7
7
|
### 実現したいこと
|
8
|
-
views.pyに
|
8
|
+
views.pyにて記載のdef sendMessage()を別途、作成したutilsディレクトリ内create_screen.py に移したいが、cannot import のエラーが発生する。
|
9
9
|
|
10
|
-
|
10
|
+
エラーコードを解消するために、どのように書き換えれば良いかご教示頂けますと幸いです。
|
11
11
|
|
12
12
|
### 発生している問題・エラーメッセージ
|
13
13
|
|
@@ -29,7 +29,7 @@
|
|
29
29
|
from linebot.models import MessageEvent, TextMessage
|
30
30
|
from dotenv import load_dotenv
|
31
31
|
|
32
|
-
from utils.create_screen import
|
32
|
+
from utils.create_screen import carouselTemplate
|
33
33
|
|
34
34
|
load_dotenv()
|
35
35
|
|
@@ -52,6 +52,12 @@
|
|
52
52
|
event.reply_token,
|
53
53
|
messages = carouselTemplate()
|
54
54
|
)
|
55
|
+
|
56
|
+
#以下の関数をこちらの配置で実行するとエラーは発生しないが、create_screen.pyに移動させるとエラーが発生します。
|
57
|
+
def sendMessage():
|
58
|
+
line_bot_api.broadcast(TextSendMessage(text='Hello World!'))
|
59
|
+
sendMessage()
|
60
|
+
|
55
61
|
```
|
56
62
|
|
57
63
|
```ここに言語を入力
|
@@ -60,26 +66,18 @@
|
|
60
66
|
from linebot.models import TextSendMessage
|
61
67
|
from bot.views import line_bot_api
|
62
68
|
|
69
|
+
#上記view.pyに記述していたsendMessage()関数をここに移行しエラーなく実行させたいがImportErrorが発生。
|
63
70
|
def sendMessage():
|
64
71
|
line_bot_api.broadcast(TextSendMessage(text='Hello World!'))
|
65
72
|
sendMessage()
|
66
73
|
```
|
67
74
|
|
68
75
|
### 試したこと
|
69
|
-
|
76
|
+
エラーメッセージの most likely due to a circular import から以下を試しましたが変わりませんでした。
|
70
|
-
from utils.create_screen import ~~carouselTemplate~~ → *
|
77
|
+
from utils.create_screen import ~~carouselTemplate~~ → *
|
71
78
|
(反対にcreate_screen.py の import ~~line_bot_api~~ → * )
|
79
|
+
参考元:https://www.kthksgy.com/python/python-circular-dependency/
|
72
80
|
※【解決策1】は勉強不足により、本課題に置き換えられず現状試せておりません。
|
73
|
-
https://www.kthksgy.com/python/python-circular-dependency/
|
74
81
|
|
75
|
-
|
82
|
+
何卒よろしくお願い致します。
|
76
|
-
→ views. py は create_screen.py より (自作の)carouselTemplate 関数をimport している
|
77
|
-
対し、create_screen.py は [views.py](http://views.py) から 変数 line_bot_api を呼び出そうとしているため相互間のインポート(循環インポート)が発生している?
|
78
|
-
※ line_bot_api : sendMessage関数内に組み込む予定の変数
|
79
83
|
|
80
|
-
https://startlab.jp/learning-python/module-error/
|
81
|
-
こちらの記事を見ると、views自体は自作モジュールではなく、かつファイル名と変数名が同じではないため以下参考の症状とは異なると思われる。
|
82
|
-
|
83
|
-
https://ja.stackoverflow.com/questions/77522/cannot-import-name-xxx-from-partially-initialized-moduleの発生条件
|
84
|
-
こちらは解釈ができず、現在試せておりません。
|
85
|
-
|