我有一个用于我的客户端代码的文件夹,一个用于我的服务器代码的文件夹,以及一个用于它们之间共享的代码的文件夹
Proj/
Client/
Client.py
Server/
Server.py
Common/
__init__.py
Common.py
如何从 Server.py 和 Client.py 导入 Common.py?
原文由 Drew 发布,翻译遵循 CC BY-SA 4.0 许可协议
2014 年 11 月编辑(3 年后):
Python 2.6 和 3.x 支持适当的相对导入,您可以在其中避免做任何骇人听闻的事情。使用此方法,您知道您获得的是 相对 导入而不是 绝对 导入。 ‘..’ 的意思是,转到我上面的目录:
需要注意的是,这仅在您从包 外部 将 python 作为模块运行时才有效。例如:
原始的 hacky 方式
您可以将 Common/ 添加到您的 sys.path(python 查看导入内容的路径列表):
os.path.dirname(__file__)
只为您提供当前 python 文件所在的目录,然后我们导航到“Common/”目录并导入“Common”模块。