1

問題を解決する方法を見つけるのを手伝ってください。私はこのようなファイル構造を持っています

/j/
    lib/
         __init__.py
         ftpserver.py
    utils/
         __init__.py
         mogno.py
         My.py 
         __init__.py
         jftpd.py 

つまり、ftpserver.pyあるクラスの基本クラスであるクラスがありMy.py ます。

# ftpserver.py
class foo()
  ...

そしてMy.pyこれは次のようなものです:

# My.py
class bar(foo)
 ...

私が欲しいのは、jftpd.pyのすべてのモジュールを使用することです。しかし、私はこれを達成する方法を見つけることができません。私はこのようなことをしています:

# jftpd.py
import lib.ftpserver
import utils.My


***some usage of my classes***

そして通訳は私を返します

NameError: name 'foo' is not defined

My.pyで相対インポートを使用するのは良い解決策かもしれません:

from ..lib.ftpserver import foo

ただし、Pythonでは許可されていない相対インポートのため、これも機能しません。私が見つけた相対インポートの例がたくさんあるにもかかわらず、エラーが発生します:

ValueError: Attempted relative import in non-package

次のような実行:

from ..lib.ftpserver import *

誰か助けてもらえますか?

4

1 に答える 1

0

試してみてくださいfrom lib.ftpserver import foo。それがうまくいかない理由がわかりません。..要素は必要ありません。

継承したクラスを定義する元のクラスを必ずインポートしてください。例えば:

from lib.ftpserver import foo

class AnyClasss(foo):
    foo
于 2013-02-06T11:35:19.167 に答える