一、出现问题
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
是为了展示其作为包引入的一个效果,可以为空