python调用自己的包(ModuleNotFoundError: No module named ‘chemprop.parsing‘)

一、出现问题

1. pycharm运行源码,已经pip install安装过chemprop包的前提下报错:

ModuleNotFoundError: No module named 'chemprop.parsing'

在这里插入图片描述

二、问题原因

1. 'chemprop.parsing’是调用的另外一个自己的包,下载的源码中没有此包,但是根据github中的README文件找到了对应文件,然后进行调用此包中定义的类和函数
在这里插入图片描述

2. 涉及知识点为:python调用自己的包文件

三、问题解决

1. 解决过程:

from chemprop.parsing import parse_train_args, modify_train_args

(1) 包的层级结构如下:

在这里插入图片描述
(2) 在main.py的同级目录下新建名为'chemprop'的文件夹,再在此文件夹中放入__init__.py文件parsing.py文件,如下图显示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、如何调用包

1. 层级结构为

pack/
    __init__.py
    sub1/
        __init__.py
        module_11.py
        module_12.py
    sub2/
        __init__.py
        module_21.py
        module_22.py

2. 假设sub2文件夹中的module_21.py代码中需要引用sub1文件夹中的模块module_11.py代码的class A , func B,则引用语法为:

from sub1.module_11 import Class A , func B

3. 举例:(使用上文中报错的实例代码层级结构),要实现:

from chemprop.parsing import parse_train_args, modify_train_args

在这里插入图片描述
4. 涉及语法:

from + 完整包名 + .模块名 + import + 定义名

5. 其中的__init__.py是为了展示其作为包引入的一个效果,可以为空

五、参考链接

link1
link2
link3
link4

猜你喜欢

转载自blog.csdn.net/m0_45521766/article/details/127199882