报错ImportError: No module named 'XXX'

可能小伙伴们在pycharm运行一切正常,但是到命令行中运行py文件,就会报错

在python中,一个py文件就是一个模块,导入模块等于导入文件。

是文件,就有文件路径,所以这个情况的出现,就是本质上就是找不到文件

为什么pycharm能够正常运行呢?

因为pycharm在每次运行的时候,都会检索整个工程目录,把一些目录都添加到sys.path中,自然运行起来的时候,都能够找到对应的模块py文件。

为什么命令行找不到模块?

因为命令行执行时,往往都是直接运行某个py文件,缺少路径检索的步骤(需要我们加上)

前面也说了,模块找不到,实际上就是文件找不到。

这个时候,我们就需要自己在代码中加上需要引入的模块路径,就能够找到模块了。

import os
import sysBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)from 模块路径.模块文件 import 类1, 类2, 类3# xxxx你的代码

在需要执行的py文件中,加上这段代码。就是在import模块文件前,先将模块路径,添加到sys.path,就能够正常引入模块。

命令行运行文件一切正常!

可能还要小伙伴失败,这个原因就是出在模块路径上了。

__file__ 。是指当前文件。

os.path.abspath(__file__):这个是获取文件的基础路径。
os.path.dirname(dir):这个是获取文件的文件夹目录(相当于拿到了文件夹)。

基础路径一般不会出错,但是文件夹目录往往都会出错,需要目录正确。

每使用一次os.path.dirname(dir),就是向上走一层,就需要不断地嵌套os.path.dirname(dir),一层一层向上走,走到工程的根目录下,就可以了。

python命令行运行找不到自定义模块相关推荐

  1. python终端命令执行提示找不到自定义模块

    python终端命令执行提示找不到自定义模块 描述一下遇到的问题: 平常在用pyhton做开发写代码的时候,我们大多数都是直接是编辑器中操作的(pycharm.eclipse.sublime等),其中 ...

  2. python命令行运行django项目, can‘t open file ‘manage.py‘ 问题解决

    python命令行运行django项目, can't open file 'manage.py' 问题解决 参考文章: (1)python命令行运行django项目, can't open file ...

  3. python 命令行运行 多进程_Python初学——多进程Multiprocessing

    1.1 什么是 Multiprocessing 多线程在同一时间只能处理一个任务. 可把任务平均分配给每个核,而每个核具有自己的运算空间. 1.2 添加进程 Process 与线程类似,如下所示,但是 ...

  4. python命令行运行模式_[Python] 命令行模式阅读博客园的博文

    1 #-*- coding:UTF-8 -*- 2 importrequests3 from lxml importetree4 importsys5 importio6 importos7 8 9 ...

  5. python路径在哪里设置_找Python安装目录,设置环境路径以及在命令行运行python脚本实例...

    第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Progr ...

  6. python-找Python安装目录,设置环境路径以及在命令行运行python脚本

    第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Progr ...

  7. Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果

    Python命令行解析:IDE内点击Run运行代码直接得出结果.基于TF flags(或argparse.sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果 目录 命令行解析 T1.采 ...

  8. sikuli python java_从命令行运行sikulix 1.1.4 python脚本

    我有一些蟒蛇( jython 实际上)与Sikulix一起运行的脚本. 我以前用过版本 1.1.1 并且正在使用命令行(在执行设置之后): java -Dsikuli.Debug=-2 -cp sik ...

  9. 命令行运行python程序

    对于新入门的小白来说,学习python的第一步就是如何在命令行中运行python程序. 1. 配置环境变量(必须).请自行百度.否则,如下 2. python命令行只能运行程序代码(类似matlab) ...

最新文章

  1. [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.6 一维粘性热传导流体动力学方程组...
  2. 牛客多校10 - Tournament(找规律)
  3. anki模板_梁宝川:如何导入,导出anki笔记?
  4. CSS浏览器兼容性问题
  5. 第八章xgboost/lightGBM
  6. 看懂别人的代码,只是成为高效程序员的第一步!
  7. 为 Windows 用户准备的简明 Linux 词汇表
  8. CISSP考试心得分享
  9. 推荐几个火狐浏览器插件
  10. 我的工程学导论学习心得1
  11. 微商引流的六种有效方法
  12. [转] 使用CPN Tools工具做简单的登录模型()
  13. Web应用服务器——Tomcat的介绍、下载安装、环境配置与使用
  14. php开发的在线客服系统,全开源无加密,支持微信客服对接
  15. 二进制漏洞挖掘之angr‘s Reaching Definition Analysis(一)
  16. .fla文件的链接类在.swf中的体现
  17. TADF材料的机制原理;TADF的机理;热活化延迟荧光如何产生?
  18. HTB打靶日记:Inject
  19. XPE及CE系统对比
  20. 计算机重启恢复到推荐分辨率,电脑重启后分辨率变低?Win10分辨率调整

热门文章

  1. 问题 C: 合唱队形
  2. VS2015未定义标识符gets
  3. 能否在虚拟平台里构建真实的生活体验?
  4. 机器学习实战第8章预测数值型数据:回归2
  5. 新版H5微信网页JS-SDK自定义分享功能实现
  6. react-sortablejs 实现自定义表单设计
  7. 关于代码选择省份和城市?
  8. HTML(超文本标记语言)——总结
  9. C语言程序设计:单词本整体框架实现
  10. 如何防止别人利用我的邮箱大量发垃圾邮件