前言
提示:这里可以添加本文要记录的大概内容:
本文是作为对之前发表的《【ModuleNotFoundError & ImportError】之失败的尝试》的补充。
采用之前总结的对 import statement、sys.path 等内容的总结,在此尝试列举了全部的导入语句,并在 Spyder 与 PyCharm 里逐一尝试。结果是:能在 Spyder 里运行的导入语句,也可以在 PyCharm 里运行。
系统环境: Win7-64bit Spyder 4.2.5 ( Python 3.7.10) PyCharm 2021.2.4(Community Ed.,调用 conda 环境)
提示:以下是本篇文章正文内容,下面案例可供参考
1 呈现所建项目
2 导入语句列举
2.1. Spyder 导入测试
import sr
import 导入测试.sr
import pkg
import sr.pkg
import 导入测试.sr.pkg
import pkg1
import pkg.pkg1
import sr.pkg.pkg1
import 导入测试.sr.pkg.pkg1
import pkg2
import pkg1.pkg2
import pkg.pkg1.pkg2
import sr.pkg.pkg1.pkg2
import 导入测试.sr.pkg.pkg1.pkg2
from 导入测试 import sr
from sr import pkg
from 导入测试.sr import pkg
from pkg import pkg1
from sr.pkg import pkg1
from 导入测试.sr.pkg import pkg1
from pkg1 import pkg2
from pkg.pkg1 import pkg2
from sr.pkg.pkg1 import pkg2
from 导入测试.sr.pkg.pkg1 import pkg2
import module
import sr.module
import 导入测试.sr.module
import module0
import pkg.module0
import sr.pkg.module0
import 导入测试.sr.pkg.module0
import module1
import pkg1.module1
import pkg.pkg1.module1
import sr.pkg.pkg1.module1
import 导入测试.sr.pkg.pkg1.module1
import module2
import pkg2.module2
import pkg1.pkg2.module2
import pkg.pkg1.pkg2.module2
import sr.pkg.pkg1.pkg2.module2
import 导入测试.sr.pkg.pkg1.pkg2.module2
from sr import module
from 导入测试.sr import module
from pkg import module0
from sr.pkg import module0
from 导入测试.sr.pkg import module0
from pkg1 import module1
from pkg.pkg1 import module1
from sr.pkg.pkg1 import module1
from 导入测试.sr.pkg.pkg1 import module1
from pkg2 import module2
from pkg1.pkg2 import module2
from pkg.pkg1.pkg2 import module2
from sr.pkg.pkg1.pkg2 import module2
from 导入测试.sr.pkg.pkg1.pkg2 import module2
from sr.module import Class
from 导入测试.sr.module import Class
from pkg.module0 import Class
from sr.pkg.module0 import Class
from 导入测试.sr.pkg.module0 import Class
from pkg1.module1 import Class
from pkg.pkg1.module1 import Class
from sr.pkg.pkg1.module1 import Class
from 导入测试.sr.pkg.pkg1.module1 import Class
from pkg2.module2 import Class
from pkg1.pkg2.module2 import Class
from pkg.pkg1.pkg2.module2 import Class
from sr.pkg.pkg1.pkg2.module2 import Class
from 导入测试.sr.pkg.pkg1.pkg2.module2 import Class
from sr.module import func
from 导入测试.sr.module import func
from pkg.module0 import func
from sr.pkg.module0 import func
from 导入测试.sr.pkg.module0 import func
from pkg1.module1 import func
from pkg.pkg1.module1 import func
from sr.pkg.pkg1.module1 import func
from 导入测试.sr.pkg.pkg1.module1 import func
from pkg2.module2 import func
from pkg1.pkg2.module2 import func
from pkg.pkg1.pkg2.module2 import func
from sr.pkg.pkg1.pkg2.module2 import func
from 导入测试.sr.pkg.pkg1.pkg2.module2 import func
3.2. PyCharm 导入测试
总结
- 能在 Spyder 里运行的导入语句,也可以在 PyCharm 里运行。
- 不推荐相对导入
- 严格遵守 import statement 的定义
- 推荐 from … import …
- 养成良好的代码习惯是避免报错的王道!
|