我的模块在以下示例结构中:
myapp
--- application
-- application.py
-- __init__.py
--- converter
-- converter.py
-- __init__.py
--- gui
--- panel.py
--- __init__.py
现在,如果我在panel.py中,我该如何导入converter.py?它会是
吗?这些要点取决于运行主python应用程序的位置吗?即如果convert.py是要运行的程序或者panel.py是要运行的程序吗?
答案 0 :(得分:1)
如果var str = "Hello, plaAyground"
var scalars = str.unicodeScalars
str = "Hello, plåÅyground"
scalars = str.unicodeScalars
print(scalars.dropFirst())
不是模块(即根目录中没有myapp
),则无法从中导入某些内容。例如__init__.py
converter
除非将panel.py
(或父模块)添加到converter
。
如果PYTHON_PATH
是一个模块(有myapp
),您可以使用相对导入:
__init__.py
。
相对导入明确表示您想要使用" local",并且通常是要走的路。 有关示例,请参阅https://docs.python.org/3/tutorial/modules.html#intra-package-references。
已更新:修复术语以简化操作;)
答案 1 :(得分:1)
你应该更喜欢相对路径上的完整路径,所以在我看来,第一个是最好的方法,尽管你应该考虑添加一个别名,因为 converter 出现两次。
from myapp.converter import converter as conv
此外,您可以查找Python推荐(PEP8) https://www.python.org/dev/peps/pep-0008/#imports