明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误

明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误_第1张图片
我想在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' 的错误_第2张图片
在pycharm中运行正常,但是当我们在cmd运行的时候,报错了,ImportError: No module named ‘commom’
如下所示
明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误_第3张图片
报错的意思是没有找到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()

运行结果:

如果你只加到项目的路径的话,你还需要指定我们需要的模块在哪个文件夹下面
明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误_第4张图片

而你如果添加到引用模块的文件夹,则导入的时候直接指定我们需要的模块就行了,如下
sys.path.append(‘D:/python_project/test_pwd/common’)

sys.path.append('D:/python_project/test_pwd/common')
from moudle_test import pwd
pwd()

运行结果如下:
明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误_第5张图片

你可能感兴趣的:(python)