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 回答