解决办法:
1、首先确保所在目录是Python Package而不是一般的New Stratch File
Python Package下有__init___.py或自己建空的__init___.py
Python 2是包的标志,只有拥有__init__文件的目录才会叫做包
python 3也是包的标志,但是不强制识别,py2和py3的__init__文件共有功能,初始化包
注意:py文件名不能出现空格,否则无法调用!!
2、pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->sources path将当前工作的文件夹加入source_path就可以了;
3、(1)绝对导入(absolute import):从包/模块外部,按照目标模块的存在路径从外到内进行导入。
绝对导入可以检索到三种来源的包:
Python自带或pip安装的包;
Python解释器启动位置同层模块和包;
人为添加到系统环境变量PYTHONPATH的模块和包。
绝对导入示例:
单独的模块:import module
模块位于包内部(不存在子包):from package import module
模块位于包内部(存在子包):from package.subpackage import module
(2)相对导入(relative import)
位于同一包中的不同子包和模块,可以通过前缀.标识存在调用关系的包/模块之间的路径依赖关系并进行相对调用。
示例:
同层目录的模块:from . import module
模块位于同层包内部(不存在子包):from .package import module
模块位于同层包内部(存在子包):from .packge.subpackge import module
模块位于上一层级目录:将以上语句的前缀进行替换from . -> from ..,以此类推
若以上还是无法解决请尝试下面操作
4、不同目录下在a.py中导入b.py
import sys
sys.path.append("b模块的绝对路径")
import b