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

以上问题解决完毕。

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

相关推荐
chnming198712 分钟前
STL关联式容器之map
开发语言·c++
进击的六角龙14 分钟前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂14 分钟前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc22 分钟前
Python简介以及解释器安装(保姆级教学)
开发语言·python
孤独且没人爱的纸鹤25 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
程序伍六七25 分钟前
day16
开发语言·c++
羊小猪~~28 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
wkj00130 分钟前
php操作redis
开发语言·redis·php
lzhlizihang31 分钟前
python如何使用spark操作hive
hive·python·spark
q0_0p32 分钟前
牛客小白月赛105 (Python题解) A~E
python·牛客