ClassXX.py とClassYY.pyと同じ場所に置いていますが
from ClassXX import ClassXX
from ClassYY import ClassYY
に対して、後者だけ失敗と成功は交替的にします。
失敗の時のメッセージ:
ModuleNotFoundError: No module named 'ClassYY'
同じ頻度で成功もします。
可能な原因は何でしょうか。
ご教授お願い致します。
問題が再現できるようなコードを提示いただけますか。
ファイルをおいてあるディレクトリの名前がClassXXだったりするとか?
「失敗と成功は交替的」というところが解せないところ
事実と認識に食い違いがあるだけだろうと思いました
書いてあることから客観的な状況が何も汲み取れない質問は、記述されていることを信頼できないので……
出来る出来ないで言えば、以下のコードで可能です。
$ cat main.py
from ClassXX import ClassXX
from ClassYY import ClassYY
$ cat ClassXX.py
import os
ClassXX=None
if os.path.exists('ClassYY.py'):
os.remove('ClassYY.py')
else:
with open('ClassYY.py','w') as f:
f.write("""
ClassYY=None
""")
$
インデントはココロの目がつけてくれるはず。。。
あっ、ごめんなさい❣
大事な事を言い忘れました。
環境:
Google Colaboratary
質問には回答いただけないんでしょうか?
皆様
お世話になっております。
dameo さんのアイディアをやってみました:
if os.path.exists('ClassXX.py'):
print('ClassXX.pyのpathが見えた❣')
if os.path.exists('ClassYY.py'):
print('ClassYY.pyのpathが見えた❣')
if os.path.exists('ClassZZ.py'):
print('ClassZZ.pyのpathが見えた❣')
from ClassXX import *
from ClassYY import *
from ClassZZ import *
==============================================
<結果>
ClassXX.pyのpathが見えた❣
ClassYY.pyのpathが見えた❣
ClassZZ.pyのpathが見えた❣
65 from ClassXX import *
---> 66 from ClassYY import *
67 from ClassZZ import *
68
ModuleNotFoundError: No module named 'ClassYY'
でも成功した場合もあります。
五分五分。
再現したのなら良かったですが、これが知りたかったことではないのでしょうか?
違うのであれば、意味がよく分からないので、これで失礼しますね。
ClassYY.pyのpathが見えてるのに、どうして
《ModuleNotFoundError: No module named 'ClassYY'》❓
Google Colab でスクリプトの一回目の実行に発生します。
2回目はあまり発生しないのです。
怪奇
違うようなので失礼します。
「コードがない状態で回答者があれこれ可能性を考えるより、コードを載せてもらった方が話が早い」と、回答者側がそう考えているのだからコードが載るまで回答はつかない。
> ClassYY.pyのpathが見えてるのに
というのはただの認識でしかなくて、事実の記述ではない。だから信じることはできない。
なぜなら「ClassYY.pyのpathが見えてるけれどModuleNotFoundErrorが出る」なら、客観的に信じられるのは「ModuleNotFoundErrorが出る」の方で、「ClassYY.pyのpathが見えてる」が間違いである蓋然性の方がずっと高い。
「こういう操作をしたらこう表示された」というのが質問する上で必要になる記述であり、回答者から見て欲しい情報。
「あなたの認識」はある意味では不要。
「1回目はエラーになるけれど2回目は大丈夫」と「後者だけ失敗と成功は交替的にします」とでは、あなたの中では同じ認識なのかもしれないけれど、客観的な事実の描写としては全然違う。どっち?
quickquip さま
お世話になっております。
ありがとうございます。💖
現在益々言えるのはgoogle colab でコマンドセルを最初実行する時やコマンドセルの中のPythonスクリプトの内容を多く修正した後再度実行させる時、いつも前記の「ModuleNotFoundError」が出されます。
不思議なのはどうしてそのimport文の前のimport文と直後のimport文は正常に作動するのに、そのimport文の対象ファイル(Module)だけがNotFoundErrorが起きるの?という現象です。
更に不思議なのは、どうして即座再実行したら、うまくimportできたの?という話ですね。
そして再現性はばっちりです!
「私はどういう風にファイルを置いているんでしょうか?」クイズになった。
単に上のセルでimportするのに必要なものを下のセルでコピー or pip installしてるとかでは。
この書き方だと「ランタイム起動後1回目はエラーになるけれど2回目は大丈夫」みたいな感じですかね。