赞
踩
在 PyCharm 中,有时需要新建一个普通目录,放入相应的模块文件来进行一个全局的配置应用,但是在引用该普通目录下的模块时,会出现一些错误,就是无法正常导入。
例如我这里建立一个普通文件夹:common,里边新建了两个模块文件:mail_helper 和 string_helper。
目录结构如下:
├─common
│ │ mail_helper.py
│ │ string_helper.py
我需要在 mail_helper 中相对导入同级目录下的 string_helper 模块中的 gen_vcode 函数:
mail_helper.py:
from .string_helper import gen_vcode
这样的话就会出现如下错误信息:
出现该问题的原因是因为如果要使用相对路径,采用 . 或者 .. 进行导入的话,那么同级目录或者上级目录就必须在目录下新建 __init__.py 文件,让 Python 解释器将其视作一个 Python 包,才能采取这种相对导入的方式。
其实普通目录下的相对引用直接采取如下方法就行了:
from string_helper import gen_vcode
如果采用绝对路径导入的话,例如如下目录结构(django_study01 也是一个普通目录):
├─django_study01
│ ├─common
│ │ │ mail_helper.py
│ │ │ string_helper.py
其引用形式为:
from django_study01.common.string_helper import gen_vcode
如果在 common 目录之外进行导入时,可以在 pycharm 中右击文件夹将 common 文件夹标记为 source root,将该普通目录添加进系统路径:
然后直接通过如下方式导入即可:
from common.mail_helper import send_vcode
标记后,运行 print(sys.path)
,就可以看到该目录已经被添加进了系统路径:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。