Python 从同一包中的文件中导入 class 中的 __init__.py
Python Import class in __init__.py from file in same package
我觉得我应该知道这一点,因为我已经在 Python 编程了很长时间,但我一直在学习关于精细语言的新知识。我的问题(很可能是重复的,但我没能找到同样的情况)是这样的。我有这样的文件布局:
websocket/
__init__.py
client.py
server.py
如何从 client.py
或 server.py
导入文件 __init__.py
中的 类?漂亮而简单:P 提前致谢!我的问题不是 this 的重复问题,因为我是从包内部导入的,无论如何,做人们在答案中所做的事情根本没有帮助。
包 __init__.py
文件中定义的名称可用作包命名空间本身中的名称。
因此,如果您的 __init__
包中有一个 Connection
class,您可以从包内部导入它,就像使用您的包一样:请参阅通过
中的包名称添加到它
from websocket import Connection
如果由于某种原因你的包没有在你的 pythonpath 中配置,或者你的目录名称可以更改你可以使用相对导入 - 在这种情况下,引用当前包就像 .
这意味着在你的 client.py
中,你可以这样做:
from . import Connection
我觉得我应该知道这一点,因为我已经在 Python 编程了很长时间,但我一直在学习关于精细语言的新知识。我的问题(很可能是重复的,但我没能找到同样的情况)是这样的。我有这样的文件布局:
websocket/
__init__.py
client.py
server.py
如何从 client.py
或 server.py
导入文件 __init__.py
中的 类?漂亮而简单:P 提前致谢!我的问题不是 this 的重复问题,因为我是从包内部导入的,无论如何,做人们在答案中所做的事情根本没有帮助。
包 __init__.py
文件中定义的名称可用作包命名空间本身中的名称。
因此,如果您的 __init__
包中有一个 Connection
class,您可以从包内部导入它,就像使用您的包一样:请参阅通过
from websocket import Connection
如果由于某种原因你的包没有在你的 pythonpath 中配置,或者你的目录名称可以更改你可以使用相对导入 - 在这种情况下,引用当前包就像 .
这意味着在你的 client.py
中,你可以这样做:
from . import Connection