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

【遇到的问题】

导入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”.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值