🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
常会遇到的一个情景是在GitHub上下载了一个repo,在其他地方使用它。 ```py import sys sys.path.append(绝对路径字符串) ``` Python 相对导入与绝对导入,这两个概念是相对于包内(含有`__init__.py`文件)导入而言的。包内导入即是包内的模块导入包内部的模块。 **相对导入:** ```py from . import some_class #本包 from ..some_package import some_function #上一层的some_package包 ``` **绝对导入:** ```py from package1 import module1 from package1.module2 import function1 from package2 import class1 from package2.subpackage1.module5 import function2 ``` 注意:即使在一个包内,也不能直接`import A`,而是要`from . import A`或者`from package_name import A` 例如: ``` thing ├── books │ ├── adventure.py │ ├── history.py │ ├── horror.py │ ├── __init__.py │ └── lovestory.py ├── furniture │ ├── armchair.py │ ├── bench.py │ ├── __init__.py │ ├── screen.py │ └── stool.py └── __init__.py ``` 那么如果在 stool 中引用 bench,则有如下几种方式: ```py from . import bench # 此为 relative import from furniture import bench # 此为 absolute import ```