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

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

相关推荐
Csvn12 分钟前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵17 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup1121 小时前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi001 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵1 天前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf1 天前
Agent 流程编排
后端·python·agent
copyer_xyf1 天前
Agent RAG
后端·python·agent
copyer_xyf1 天前
【RAG】向量数据库:milvus
后端·python·agent
copyer_xyf1 天前
Agent 记忆管理
后端·python·agent