0

したがって、2 つのファイルがあります。ファイル 1 には、次のメソッドが含まれています。

import MyGlobals
global old_function
def init():
    import ModuleB
    global old_function
    MyGlobals.SomeNumber = 0
    old_function = ModuleB.someClass.function
    ModuleB.someClass.function = someNewFunction

ファイル 2 には、クラス「someClass」とクラス「someOtherClass」があります。そうは言っても。コンピューターでコードを実行すると、うまく機能し、期待どおりに動作します。同じPythonバージョン2.5.4を搭載したWindows 7の同じビルドである友人のコンピューターでこのコードを実行すると、同じコード(両方のサムドライブ上)で「モジュールにsomeClassが含まれていません」というエラーが表示されます

これが私が言おうとしていることに意味があることを願っています。これは仕事に関連しているため、コード スニペットは読み上げられません。これは、なぜこれが当てはまるのか、非常に困惑しています。「from ModuleB import someClass」を試して、someClassが機能するかどうかを確認しましたが、someClassはmoduleBになく、someCLassは間違いなくmoduleBにあると言われました...

どんなアイデアでも大歓迎です!

4

1 に答える 1

2

の異なるバージョンを使用していることは明らかですModuleBModuleB.pyサムドライブからコードを実行していても、PYTHONPATH のどこかに別の場所を置いており、そのバージョンをコンピューターで実行しているが、友人のコンピューターでは実行していないと推測する危険があります。これは簡単に確認できます。

import ModuleB
print ModuleB.__file__

私はそれがあなたが期待しているものを印刷しないに違いない!

global別の注意として、コード スニペットの最初の宣言は必要ありません。これは既にグローバル スコープです。

于 2010-08-12T19:47:27.723 に答える