关于Python项目在Pycharm能运行,命令行运行则找不到模块的原因

Python解释器运行时会导入当前工作目录下的模块。当你在Pycharm中启动解释器时,当前的工作目录是项目根目录,但是当你通过命令行启动时,当前工作目录为你运行python文件时所在的目录。如果当时的位置不是项目目录,那么项目目录中的模块就不会被找到。

例如:

我的项目目录如下,运行项目需要执行 excute.py 文件

 

 

 当在Pycharm上运行时,我们导入模块需要这样:

from main.http.xxx import xxx
from main.tcp.xxx import xxx

但是,当我们使用命令行进入main目录执行 python excute.py 时,使用以上的导入方式就会出现 ModuleNotFoundError,就是找不到 main 这个模块。

from http.xxx import xxx
from tcp.xxx import xxx

因为此时添加到环境变量的路径已经由  xxx/xxx/killer/ 变为 xxx/xxx/killer/main/

posted @ 2019-07-10 14:36  傲娇的草履虫  阅读(3888)  评论(0编辑  收藏  举报