python:import自定义包或py文件时,pyCharm正常但终端运行提示ModuleNotFoundError: No module named错误

问题

示例项目引用items.py,项目在pycharm开发工具中可以正常运行,但使用终端直接运行会报错ModuleNotFoundError: No module named。如下图。

原因

pycharm开发工具运行正常,说明目录和引用模块是没问题的。问题在于终端的运行环境只搜索文件当前目录、已安装的内置模块和第三方模块,不会主动搜索其它目录,而pycharm可以根据项目的配置可以搜索引用目录(如设置了Source Boot)。

解决方案

在引用items之前,先使用sys.path将items.py所在目录添加到项目运行环境,终端也可以正常运行了。

python 复制代码
import sys
print(sys.path) #查看当前python解释器搜索目录集合
import os
#print(os.path.dirname(__file__)) #当前文件所在绝对路径
prPath=os.path.dirname(os.path.dirname(__file__)) #当前文件所在绝对路径的上一级路径
print(prPath) #items所在目录
sys.path.append(prPath) #将items所在目录添加到运行环境

以上问题解决完毕。

如果我的文章解决了你的问题,欢迎点赞、收藏或评论。

相关推荐
今天吃饺子7 分钟前
时滞最大信息系数(MIC)分析,为你的预测模型添砖加瓦,MATLAB免费代码
开发语言·matlab
愚润求学12 分钟前
【C++11】可变参数模板
开发语言·c++·笔记·c++11·模板
Gerry_Liang16 分钟前
Java基础361问第16问——枚举为什么导致空指针?
android·java·开发语言
小羊Linux客栈28 分钟前
Python自我娱乐小游戏
开发语言·python·游戏程序·娱乐
jiaoxingk41 分钟前
有关爬虫中数据库的封装——单线程爬虫
数据库·爬虫·python·mysql
武昌库里写JAVA1 小时前
vuex源码分析(一)——初始化vuex
java·开发语言·spring boot·学习·课程设计
不思念一个荒废的名字1 小时前
【刷题Day29】Python/JAVA - 03(浅)
java·开发语言·jvm·python
画个大饼1 小时前
深度对比:Objective-C与Swift的RunTime机制与底层原理
开发语言·objective-c·swift
TNTLWT1 小时前
3、CMake语法:制作和使用动态库和静态库
开发语言·cmake