关于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)])

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

相关推荐
明灯L7 分钟前
《函数基础与内存机制深度剖析:从 return 语句到各类经典编程题详解》
经验分享·python·算法·链表·经典例题
databook8 分钟前
不平衡样本数据的救星:数据再分配策略
python·机器学习·scikit-learn
碳基学AI13 分钟前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义免费下载方法
大数据·人工智能·python·gpt·算法·语言模型·集成学习
niuniu_66614 分钟前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
FearlessBlot17 分钟前
Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified
python·flask
独好紫罗兰26 分钟前
洛谷题单3-P5718 【深基4.例2】找最小值-python-流程图重构
开发语言·python·算法
正脉科工 CAE仿真40 分钟前
基于ANSYS 概率设计和APDL编程的结构可靠性设计分析
人工智能·python·算法
程序员一诺1 小时前
【Django开发】前后端分离django美多商城项目第15篇:商品搜索,1. Haystack介绍和安装配置【附代码文档】
后端·python·django·框架
kgduu2 小时前
打包python文件生成exe
python
Cool----代购系统API2 小时前
跨境速卖通与 API 接口数据分析
开发语言·python