[debug] 命令行窗口运行.py文件,报错No module named XXX
问题描述:
在PyCharm中运行.py文件正常,在命令行运行.py文件报错"No module named XXX
"
原因分析
说到底是搜索路径的问题。
PyCharm中运行的时候,该项目文件中的其他文件可以被所运行文件调用。也就是说,系统的搜索路径包括。
而在命令行窗口运行.py文件的时候,系统的搜索路径并不包括所运行项目文件夹所在的文件夹,于是出现No module named XXX
的报错。
解决思路
将所运行.py文件所在的路径,加入到系统的搜索路径。
解决方法
在代码的最开始的地方加上以下代码:
import sys,os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
对于curPath = os.path.abspath(os.path.dirname(__file__))
,先由os.path.dirname(__file__)
得到所运行.py文件的路径(我这里为C:/Users/73416/PycharmProjects/HSIproject
),再由 os.path.abspath()
得到文件的绝对路径,赋值给curPath
(我这里赋给curPath
的值为C:\Users\73416\PycharmProjects\HSIproject
)。
之后rootPath = os.path.split(curPath)[0]
,首先是os.path.split(curPath)
将curPath
分隔成目录名dirname
和文件名basename
,返回一个元组(我这里返回的是('C:\\Users\\73416\\PycharmProjects', 'HSIproject')
),然后通过取索引0
来将元组的第一个元素C:\\Users\\73416\\PycharmProjects
赋值给rootPath
。
最后,通过.append()
函数将rootPath
加入到sys.path
中。
运行结果:
['C:\\Users\\73416\\PycharmProjects\\HSIproject','E:\\PyCharm 2018.3.4\\helpers\\pydev', 'C:\\Users\\73416\\PycharmProjects\\HSIproject', 'E:\\PyCharm 2018.3.4\\helpers\\third_party\\thriftpy', 'E:\\PyCharm 2018.3.4\\helpers\\pydev', 'E:\\Anaconda\\python37.zip','E:\\Anaconda\\DLLs', 'E:\\Anaconda\\lib', 'E:\\Anaconda', 'E:\\Anaconda\\lib\\site-packages', 'E:\\Anaconda\\lib\\site-packages\\win32', 'E:\\Anaconda\\lib\\site-packages\\win32\\lib', 'E:\\Anaconda\\lib\\site-packages\\Pythonwin', 'E:\\PyCharm 2018.3.4\\helpers\\pycharm_matplotlib_backend', 'E:\\Anaconda\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\73416\\PycharmProjects\\HSIproject', 'C:/Users/73416/PycharmProjects/HSIproject', 'C:\\Users\\73416\\PycharmProjects']
[debug] 命令行窗口运行.py文件,报错No module named XXX相关推荐
- cmd命令行窗口运行py文件
文章目录 一.cmd是什么? 二.cmd命令行窗口 运行py文件 一.cmd是什么? cmd是指 命名提示符,是在操作系统中,提示进行命令输入的一种工作提示符. windows环境下,命令行程序为 c ...
- python命令行执行 .py文件提示ModuleNotFoundError: No module named 'XXX' 解决方法
今天用Jenkins执行.py文件时,总是提示ModuleNotFoundError: No module named 'XXX',百思不得其解.但是在PyCharm中却是能执行成功的,想了想然后在终 ...
- 如何在命令行窗口运行某个文件夹下的exe程序
1.打开命令行窗口 win+r键打开运行窗口,输入cmd,确定. 2.输入程序所在文件夹下的磁盘名,加冒号,如"F:" 3.输入"cd"+空格+"文件 ...
- python报错No module named XXX解决方法
今天在搞风控模型升级的时候,遇到了这个错误 No module named XXX 起因就是执行一个python程序,在这个程序中引入了另一个文件夹中 的一个 python 文件中的变量. 所 ...
- 如何解决命令行编译运行Java文件时报错Could not find or load main class ...
前言 以前一直用Eclipse来运行Java程序,从未在命令行中编译运行过Java文件.直到最近某次运行别人写的bat文件时,出现"Could not find or load main c ...
- 运行bert模型报错No module named ‘tensorflow.contrib‘
命令行报错如下: import tensorflow.contrib.slim as slim ModuleNotFoundError: No module named 'tensorflow.con ...
- 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( No module named ‘numpy‘ )
文章目录 一.报错信息 二.解决方案 一.报错信息 编译时 , 报错如下信息 : No module named 'numpy' 二.解决方案 pip install numpy Try to run ...
- python报错No module named XXX通用解决方法
一 问题现象 D:\Python27\python.exe E:/Python/MySQLControler/Main/Main.py Traceback (most recent call last ...
- 解决命令行运行python文件,出现No module named *** 报错问题
解决命令行运行python文件,出现No module named *** 报错问题 参考文章: (1)解决命令行运行python文件,出现No module named *** 报错问题 (2)ht ...
最新文章
- 8 list切片_Python中14个切片操作,你常用哪几个?
- 牛客题霸 [ 求路径] C++题解/答案
- git flow reset 3种详解
- c++ 结构体初始化_C/C++编程笔记:C语言和C++语言的 struct 对比!区别在哪里?
- ARM开发7.5.1 基础实训( 5 ) 4×4 矩阵键盘和 2 路 LED 显示系统( 1)--LPC21XX
- java前端学习路线_Java前端需要学什么?Java前端学习路线分享
- oracle 12c 行转列函数,oracle12cwm_concat函数人工写行转列函数
- Learun,一款专注于业务,不用写代码的框架
- 2022智源大会议程公开 | 青源学术年会
- 数字逻辑·逻辑代数【常用公式、化简】
- 搭建vpn linux,vpn在linux下搭建
- 漫谈程序员(十六)健康程序猿系列之健康体魄
- 你会copying了吗?(Effective C++ 12 复制对象时勿忘其每一个成分)
- 手拉手微商俱乐部 微信营销实战课程开讲啦
- 移民去欧洲,选哪个国家好呢?
- R12供应商银行账户SQL
- 基于echarts实现根据鼠标移动轨迹更改曲线值或创建曲线
- 黑马传智播客第三十六期前端最新学习视频分享
- springboot+nodejs+vue工程师售后服务评价管理系统
- Linux 内核测试和调试