写
Python程序时,想在一个文件夹的代码中引用另一个文件夹代码里的变量,from ‘另一个文件夹路径’ import ‘另一个文件夹中的类’,提示没有这个module。但其他文件夹(别人写的)都可以找到,查了一下关于Python package和module的知识,发现是__init__.py的原因。
补充一下这两点的知识:
Package
- 相当于c++语言中的namesapce 便于命名管理 同一个包下的不能出现两个相同的名
- 怎么辨别python中的包和文件夹 很简单 只要是目录下包含__init__.py(内容是空的)的就是包,否则是文件夹(所以我的代码中找不到这个module是因为代码把这个文件夹当成是一个纯文件夹,而不是一个package)
- 如果用Pycharm打开,会发现Python package相对于普通文件夹,图标多了一个圆点
Module
- 可以理解为一个python文件就是一个模块
- 比如 当前文件夹下有test.py 这个文件 这个文件中有一个类test, 调用方法:
import test # 模块
补充:
此外在写代码过程中遇到的ImportError:No module named 更多的是找不到路径问题,可以通过打印相关的PATH、PYTHONPATH等信息进行调试。