我想在test文件夹中的test.py调用自己写在common文件夹中的module_test.py里面的函数方法
module_test.py内容如下:
def pwd():
print('我是一个自定义模块')
test.py内容如下
from commom.moudle_test import pwd
pwd()
运行test.py,结果如下
在pycharm中运行正常,但是当我们在cmd运行的时候,报错了,ImportError: No module named ‘commom’
如下所示
报错的意思是没有找到common这个模块,也就是没找到common这个文件夹.为什么没找到呢
这是因为找模块的时候都是往下寻找的,遍历当前路径的文件以及文件夹,没找到就报错.
pycharm是从project的路径开始遍历的,而且我们指定了我们需要的模块在common文件夹中,从而pycharm可以找我们需要的模块.
那CMD从哪里开始遍历呢?CMD从当前所在位置开始遍历,当前路径如下:
D:\python_project\test_pwd\test>
遍历test文件夹并没有找到common这个文件夹,只有test.py…那当然就找不到我们需要的模块了.
那咋办呢?既然需要找到common文件夹,那我们把这个文件夹加入遍历中不就行了吗?
使用sys.path.append()就可以加入了,需要传入绝对路径.我们可以如下添加:
sys.path.append(‘D:/python_project/test_pwd’)
import sys
sys.path.append('D:/python_project/test_pwd')
from common.moudle_test import pwd
pwd()
运行结果:
如果你只加到项目的路径的话,你还需要指定我们需要的模块在哪个文件夹下面
而你如果添加到引用模块的文件夹,则导入的时候直接指定我们需要的模块就行了,如下
sys.path.append(‘D:/python_project/test_pwd/common’)
sys.path.append('D:/python_project/test_pwd/common')
from moudle_test import pwd
pwd()