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

2023-09-20 15:22:47

【遇到的问题】

导入yolov5中有utils文件,自己的代码中也有utils文件,使得yolov5中的这部分引用出错了。

【解决方案】

单独建立detection文件夹,把检测相关的都放在这里,yolov5是github上拉取的源码,发现yolov5中from utils import...有下划线,且会认为是edgeserver里的utils。

【方法1】选中yolov5文件夹,右键设定成“marked directory as sources root”, 修改后,detection.py执行没有问题,但是外面调用detection时,就会报错。

【方法2】yolov5中各个子文件夹中, 引用utils文件的地方,全部改成加上前缀EdgeServer.detection.yolov5., 相当于直接改成了绝对路径,虽然繁琐,但是一劳永逸,也无需设置成source root.

【知识补充】

1、package, 显示为文件夹上带一个点

每个里面都有一个__init__.py, 虽然内容为空。通过添加它,Python 会将目录视为包含包,使这部分模块对其他目录可见,因此能够通过from 。。。import。。。被导入。

2、directory, 显示为普通文件夹

Dictionary在pycharm中是一个文件夹,放置资源文件等,该文件夹其中并不包含_ _ init.py_ _文件

3、sources root,显示为蓝色文件夹

指定一个文件夹,你告诉IntelliJ IDEA,这个文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分。PyCharm使用Source roots作为解析导入(import)的起点,也就是说,当你在代码中写相对路径的时候,就是以source root为起点进行查询

4、resources root,显示为橘色下标的文件夹

用于应用程序中的资源文件(图像、各种配置XML和属性文件等)。在构建过程中,资源文件夹的所有内容都复制到输出文件夹中。

5、Excluded roots (shown as ) are ones that PyCharm “almost ignores”.

更多推荐

【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享...

全文下载链接:http://tecdat.cn/?p=23544在本文中,长短期记忆网络——通常称为“LSTM”——是一种特殊的RNN递归神经网络,能够学习长期依赖关系(点击文末“阅读原文”获取完整代码数据)。本文使用降雨量数据(查看文末了解数据免费获取方式)进行分析。视频:LSTM神经网络架构和工作原理及其在Pyth

Zynq UltraScale+ XCZU3EG 纯VHDL解码 IMX214 MIPI 视频,2路视频拼接输出,提供vivado工程源码和技术支持

目录1、前言免责声明2、我这里已有的MIPI编解码方案3、本MIPICSI2模块性能及其优越性4、详细设计方案设计原理框图IMX214摄像头及其配置D-PHY模块CSI-2-RX模块Bayer转RGB模块伽马矫正模块VDMA图像缓存VideoScaler图像缓存DP输出5、vivado工程详解PL端FPGA硬件设计PS

云原生服务无状态(Stateless)特性的实现

文章目录为何要使用无状态服务?无状态服务的实现方法1.会话状态外部化2.负载均衡3.自动伸缩4.容器编排5.数据存储6.安全性示例:使用SpringBoot实现无状态服务结论🎉欢迎来到云计算技术应用专栏~云原生服务无状态(Stateless)特性的实现☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒

一文讲解ARMv8内存属性与类型(Memory types and attributes)简介

ARMv8中将内存分为两种类型:Normalmemory和Devicememory,Normalmemory适用于系统中的大部分内存,而Devicememory则适用于外设所使用的内存。1.NormalMemoryNormalmemory类型属性适用于系统中的大多数内存。它表示架构允许硬件对这些位置执行推测数据读取访问

NetSuite知识会汇编-管理员篇&顾问篇2023

本月初,开学之际,我们发布了《NetSuite知识会汇编-用户篇2023》,这次发布《NetSuite知识会汇编-管理员篇&顾问篇2023》。本篇挑选了近两年NetSuite知识会中的一些文章,涉及开发、权限、系统管理等较深的内容,共19篇。阅读对象是NetSuite的系统管理员与实施顾问。中国的NetSuite系统管

Android10 Settings系列(四)设置应用信息界面,动态控制应用是否可以在设置中卸载强制停止

一、前言笔者最近又遇到了个新的需求,在settings中针对特定应用,禁用应用管理的强行停止和卸载按钮。于是在这里记录分享一下,加深一下印象,方便下次遇到能够快速解决问题二、准备工作我们知道应用管理在Settings应用中,于是准备好定位。那么如何定位呢,这里有两个工具可以使用layoutinspector和uiaut

Jtti:Ubuntu下如何迁移Thunderbird邮件

要迁移Thunderbird邮件,您需要复制和转移Thunderbird的邮件文件和配置文件。以下是一般的迁移步骤:注意:在进行迁移之前,请确保Thunderbird已经安装在目标Ubuntu系统上。备份旧系统的Thunderbird数据:在源系统上打开Thunderbird,点击“帮助”->“故障排除信息”->“打开

Ubuntu 20.04中docker-compose部署Nightingale

lsb_release-r可以看到操作系统版本是20.04,uname-r可以看到内核版本是5.5.19。sudoaptinstall-ydocker-compose安装docker-compose。完成之后如下图:cd/opt/n9e/docker/进入到/opt/n9e/docker/里边。docker-compo

R语言实现样本量的估算(2)

本文默认α=0.05(sig.level),β=0.2(power),根据研究需要可调整。导入包library(pwr)(1)已知标准差和预期差异1、单样本t检验:某治疗措施预期提高某物质水平8mg/L,标准差为10mg/L。#单样本t检验pwr.t.test(d=8/10,#期望的平均差异/总体标准差sig.leve

HTML5编写旅游网页

网页样例::代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title></hea

关于wParam和lParam

在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义?WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的。是两普通的变量。是怎样通过wParam,lParam传参数的呢?有时候表示点的坐标,有时表示控件的ID,是不是事先定义好的?WPARAM是32位

热文推荐