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

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

相关推荐
CodeCraft Studio11 分钟前
PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 Base64
开发语言·python·pdf·base64·aspose·aspose.pdf
困鲲鲲1 小时前
Python中内置装饰器
python
摩羯座-185690305942 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
爱隐身的官人2 小时前
cfshow-web入门-php特性
python·php·ctf
gb42152873 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
THMAIL3 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
~-~%%3 小时前
从PyTorch到ONNX:模型部署性能提升
人工智能·pytorch·python
蒋星熠3 小时前
Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物
开发语言·python·算法·flutter·设计模式·性能优化·硬件工程
爬虫程序猿4 小时前
《京东商品详情爬取实战指南》
爬虫·python
胡耀超4 小时前
4、Python面向对象编程与模块化设计
开发语言·python·ai·大模型·conda·anaconda