关于python from .. import .. 以及 pycharm对于source root bug的一个通用解决方案

先说问题

python里默认from .. import .. 这个写法的from会查找当前文件夹下但不包含当前文件夹的路径,也就是说 如果from ..的这里写入的是当前文件夹 是会报错的,因为无法找到当前文件夹。

尝试的坑

pycharm的source root。这个是真的坑啊。加了source root也不会加入syspath. 并且最大的坑在于你去掉了source root重新导入也显示你曾经加过source root但已经去掉source root的文件夹是source root ,这句话很绕口 但你可以自己手工尝试一下有多坑。最最重要的是 现在很多人写blog就是一顿粘贴复制,根本找不到几个有用的信息, oh shit(头痛捂脸).

思路和解决

最根本的问题是出现在了路径查找上,这也是python最大的一个毛病(称之为毛病是因为这个设计让很多人犯愁 一个让很多人犯愁的设计 就是emmm...拉夸)。

我们接着这个思路来看,既然不包含当前文件夹 那我们干脆设置上一级路径为source root不就好了嘛。避免路径写死,所有路径使用common路径 代码如下:

复制代码
current_folder = os.getcwd()
sys.path.append(current_folder[0:current_folder.rfind(os.sep)])

至此,问题解决。帮助到你的话点个赞吧哈哈哈哈。

相关推荐
codists22 分钟前
2025年9月文章一览
python
语落心生25 分钟前
FastDeploy SD & Flux 扩散模型边缘端轻量化推理部署实现
python
java1234_小锋37 分钟前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 立即执行模式(Eager Execution)
python·深度学习·tensorflow·tensorflow2
王大傻09281 小时前
numpy -- 算术函数 reciprocal() 和 power() 简介
python·numpy
咕白m6251 小时前
Python 将 Excel 转换为图片:实现数据可视化
后端·python
深蓝电商API1 小时前
不止是 Python:聊聊 Node.js/Puppeteer 在爬虫领域的应用
爬虫·python·node.js
Autumn72991 小时前
【材料学python入门】conda、 jupyter、cpu、GPAW、wsl、ubuntu
python·jupyter·conda
K2I-2 小时前
UCI中Steel Plates Faults不平衡数据集处理
python
蓑笠翁0012 小时前
Django REST Framework 全面指南:从模型到完整API接口开发
后端·python·django
鹓于2 小时前
开发Bug——U盘插入断网
bug