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所在目录添加到运行环境

以上问题解决完毕。

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

相关推荐
一点媛艺1 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风1 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生2 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功2 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
老猿讲编程2 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk3 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*3 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue3 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang