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

开发常用命令 环境管理 创建环境# 环境名称 conda create --name your_env_name # 指定python版本的环境 conda create --name your_env_name python=3.5 numpy scipy 查看所有环境conda info -e conda env list 进入环境activate your_env_name 退出环境deactivate 复制环境conda create --name new_env_name --cl 阅读详情
先说问题

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

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

PyCharm中Python目录转软件包的原理与实践 Python软件包是模块化开发的基础单元,通过`__init__.py`文件实现目录到包的转换。该文件不仅标识包结构,还能控制导入行为和执行初始化代码。PyCharm作为主流Python IDE,提供了智能的包管理功能,包括自动创建`__init__.py`、代码导航和相对导入支持。在实际工程中,合理的包结构设计和`__init__.py`编写能显著提升代码可维护性,特别是在大型项目中配合PyCharm的索引优化功能,可平衡开发效率与运行时性能。掌握这些技巧对Python开发者构建可扩展项目至关重要。 阅读详情

相关推荐

如何优雅地进行频谱分析—— 一行代码实现绘制MATLAB频谱、功率谱图

之前的文章里讲了关于信号频谱、能量谱的相关理论和MATLAB编程实现方法: Mr.看海:信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析) Mr.看海:频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱) 不过对于刚刚开始进行这方面研究,或者对MATLAB不甚熟悉,抑或者不想花太多时间用在编程这件事上的同学,目前缺少一种足够便捷、高效、可靠的代码。 所以笔者想做这样一件事:编写一个函数,同学们只需要导入自己要分析的数据,并按照自己的需求设置部分选项,调用一行代码就可以实现绘制频

fengzhuqiaoqiu的博客 2万+

Pycharm 快捷键、解释器设置、source root、远程开发、插件

Pycharm 快捷键、解释器设置、source root、插件

freeking101的博客 1万+

别再死磕USB HID了!用ESP32的Arduino框架手把手教你实现蓝牙鼠标键盘(附完整代码)

本文详细介绍了如何使用ESP32的Arduino框架实现蓝牙HID设备,包括鼠标和键盘的快速开发。通过现成的库和示例代码,开发者可以轻松打造自定义蓝牙外设,无需复杂的USB HID协议栈,适用于演示控制器、宏键盘等多种场景。

weixin_31309419的博客 263

pycharm中的Mark Directory As 里的 Sources Root、Excluded...

这里主要提到两个文件夹的作用,分别是Sources Root、Excluded。

Drug discovery 2800

(一)PyBullet机器人仿真入门:从环境搭建到实例解析

本文详细介绍了PyBullet机器人仿真平台从零开始的完整入门指南。内容涵盖环境搭建、官方示例解析、核心操作(连接、世界与模型)、关节控制与状态读取,以及碰撞检测、传感器模拟等高级功能,帮助读者快速掌握这一强大的机器人仿真工具。

weixin_29062865的博客 1383

基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。(1)根据邻接矩阵画出网络拓扑图(2)画出网络拓扑图,并对节点和链路进行表示,包括对节点和链路的标号,颜色区分,以及尺寸区分。

m0_53961910的博客 7096

pycharm 中package, directory, sources root, resources root的区别

用于应用程序中的资源文件(图像、各种配置XML和属性文件等)。在构建过程中,资源文件夹的所有内容都复制到输出文件夹中。导入yolov5中有utils文件,自己的代码中也有utils文件,使得yolov5中的这部分引用出错了。Dictionary在pycharm中是一个文件夹,放置资源文件等,该文件夹其中并。指定一个文件夹,你告诉IntelliJ IDEA,这个文件夹及其子文件夹中包含的。,因此能够通过from。,yolov5是github上拉取的源码,,可以编译为构建过程的一部分。

weixin_52120741的博客 2290

STM32F0实现数字化SPWM纯正弦波逆变器

这个没啥好说的,搭电路的事。其核心思想是两边桥臂分别由两个180度相位差的正弦波与三角载波比较来控制,优点是在开关器件工作频率一样的情况下,输出PWM频率是单极性SPWM的2倍,能够明显减少谐波,因此只需要相对较小的电感和电容滤波器件就可以起到很好的滤波效果,提升了系统的性能,也精简了系统体积,降低了成本。而双极性pwm则是在整个正弦周期内,四只管子都在高频开关状态工作,对角线上的管子一起导通,另一对角线上管子互补导通,实际上只需要一路互补的PWM控制,负载上电压在正电压和负电压之间切换,不出现0v。

forlifefor的专栏 1万+

Pycharm 中 Mark Directory As 里的 Sources Root 的作用

源根(或源文件夹) 通过为此类别分配文件夹,您可以告诉IDE编译器此文件夹及其子文件夹包含应作为构建过程的一部分进行编译的源代码。 测试源根(或测试源文件夹;显示为rootTest) 这些根类似于源根,但是用于测试的代码(例如用于单元测试)。通过测试源文件夹,您可以将与测试相关的代码与生产代码分开。 通常,源和测试源的编译结果放在不同的文件夹中。 资源根源 适用于您的应用程序中使用的资...

Python美丽星球--微信(Felixzfb) 1万+

15、降维算法:原理、实现与应用

本文深入介绍了多种降维算法,包括线性方法如主成分分析(PCA)和线性判别分析(LDA),以及非线性方法如Sammon映射、t分布随机邻域嵌入(t-SNE)和自编码器。文章通过C++库Dlib和Shogun展示了这些算法的具体实现,并结合图像压缩和数据可视化等实际案例,分析了不同算法的适用场景。此外,还探讨了降维算法的选择策略、优化改进方法以及未来发展趋势,为读者提供了全面的技术理解和应用指导。

lemon的博客 116

Microsemi Libero系列教程(二)——新建点灯工程

前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验,可以了解芯片GPIO的控制和开发环境IDE新建工程的流程,对于FPGA来说,每个IO口几乎一样,所以本篇文章主要学习一下如何基于Microsemi Libero集成开发环境建立一个示例工程,让一个L...

whik1194的博客 1万+

pycharm import 同路径下.py文件和文件夹报红解决方案

问题描述 pycharm中从同文件夹目录下导入其他.py文件和其他文件夹报错 解决方法1 如果要导入的包是一个文件夹,例如我想要导入同目录下的pytorch-pretrain-bert,由于我的环境里本来就是有pytorch-pretrain-bert这个包的,所以解释器默认会从后端path去编译,也就是两个包名重复了。 最简单的办法是在导入包前面加上.,指明了要导入的包是当前py文件同路径下的,这样就消除了歧义 解决方法2(推荐) 上述的方法只能解决导入的是其他文件夹,但是如果要导入其他.py文件就不

weixin_43301333的博客 2万+

华为OD机试 - 项目规划 - 深度优先搜索dfs(Java 2024 C卷 100分)

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 1153

VSCode与PyCharm提示unresolved import解决方案

问题描述 在VScode或者pyharm中采用python import自定义模块是,有时会显示unresolved import警告并且 无法跳转到自定义模块函数定义 出现问题的原因 没有安装import对应的模块 import的文件夹没有添加__init__.py文件 项目的PYTHONPATH没有设置正确 解决方案 原因1,使用pip安装好对应的模块即可 原因2,在需要import的文件夹下新建__init__.py文件 原因3,这里对VSCode与Pycharm分别进行解决 VSCode与

qq_34499305的博客 2469

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python import变灰_pycharm中import呈现灰色原因的解决方法

1. 问题描述:同目录下,当多个文件之间有相互依赖的关系的时候,import无法识别自己写的模块,PyCharm中提示No Module.2. 解决步骤:(1).打开File--> Setting—> 打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上(2).右键点击自己的工作空间文件夹,找到Mark...

weixin_39520204的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pycharm中import呈现灰色原因

问题表述:pycharm中老是import失败,呈现灰色线,我按照、优快云博客上给的设置“右键点击自己的工作空间,找下面的Mark Directory as 选择Source Root”,但是未解决问题,说明不是我的文件存放不在一个频道(import文件首先会在相同的目录下面寻找) 问题在于:我把两个文件相似文件名同时放在一个source root下面,可能会有干扰,于是,解决办法是: 完美...

weixin_41951986的博客 3万+

解决Pycharm中import时无法识别自己写的程序

我们用pycharm打开自己写的代码,当多个文件之间有相互依赖的关系的时候,import无法识别自己写的文件,但是我们写的文件又确实在同一个文件夹中,这种问题可以用下面的方法解决:    1)打开File--》Setting—》打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上 2)右键

自然语言处理技术 1万+

PyCharm 里 import 不报错,运行却失败?Sources Root 的锅

PyCharm的import问题源于编辑器与运行时使用两套独立路径系统。Sources Root是关键配置,需手动标记代码目录(如src/)以对齐两套系统。常见项目结构中,平铺式最简单,带子包或src/布局需额外设置。推荐正式项目使用pip install -e .安装为可编辑包,彻底解决路径问题。排查时优先检查sys.path是否包含目标目录。PyCharm开发时,Sources Root与运行配置的Working Directory需正确设置,避免编辑器无报错但运行失败的情况。

Rabbit_QL的博客 270

pycharm引用python_pycharm下调用自己的(python)py文件

目录同一个目录下不同目录下举例说明其它方法Pycharm下的调用问题一、同一个目录下调用同一个目录下的时,可以直接:import XXX.pyfrom 文件夹 import XXX.py只是第一种形式会有波浪线提醒,不过不影响运行。波浪线问题消除见第四章二、不同目录下在上面基础上,加上层级名称即可当然也可以通过指定路径的方式处理,见第三章三、举例说明其它方法A|----- __init_...

weixin_39888943的博客 2223

Python import 或 from import时 同级目录报错!

明明在一个文件夹下,但import时却报错了! 这是因为pycharm不会将当前文件目录自动加入自己的sourse_path。 解决办法 右键make_directory as–>Sources Root将当前工作的文件夹加入source_path

ANAN永不败315的博客 1367

解决“attempted relative import with no known parent package“的错误

用pycharm写代码时,当import无法识别同一个文件夹中的文件,提示“attempted relative import with no known parent package”时,这种问题可以用下面的方法解决: 打开File->Setting->打开 Console下的Python Console,把选项(Add source roots to PYTHONPATH)勾选上 右键点击自己的工作空间,找下面的Mark Directory as 选择Source Root,就可以解决上面

哦,原来你也在这里。 6万+

PyCharm中的from...import报错解决

版权声明:本文为优快云博主「星缘若影」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/jiachuan/article/details/91363267。最后,在导入文件的上级目录上,右键找到mark Directory as(鼠标放在文件夹上,右键!用PyCharm自带的project interpreter 安装失败。选择source root。安装jieba插件。

weixin_55152875的博客 1013

python的包导入问题from . import失败,或者import找不到文件

这其实是因为pycharm没有把这个项目当作一个代码包来解析,如果出现类似的问题,不是代码原因,仅仅需要在pycharm上修改一下设置让IDE识别项目包就好,步骤如下: 1,鼠标邮件点击你的项目文件,然后一次点击选择:Mark Directory as>>Sources Root。 ———————————————— 版权声明:本文为优快云博主「欧晨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xia

Weanhear_yu的博客 1万+

Pycharm中无法import自己写的模块

文章目录现象解决方法 现象 pycharm 运行出现 ImportError:No module named ‘’XXX” 解决方法 pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as–>sources path将当前工作的文件夹加入source_path就可以了 ...

LTC_1234的博客 1222

【Pycharm】解决 import 无法识别自己的 .py 文件的方法

【Pycharm】解决 import 无法识别自己的 .py 文件的方法 原文链接:https://www.jb51.net/article/180182.htm pycharm导入我自己写的各种函数.py文件时有红色标注,显示“no moudle balabala…” 可以看到,右侧自己写的函数是存在的。 解决办法: 方便起见,直接在文件所在的目录(如上目录为 jihe )上进行操作! 如图,右键点击根目录——>Mark Directory as——>Sources Root.就大功告成

haoweixl的博客 4290
上一篇: linux学习小记---centos和ubuntu对于文件下载安装的区别。
下一篇: 安卓app_process启动进程的底层流程
androideveloper
博客等级 码龄12年 21粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值