美文网首页
python之import跳坑指南

python之import跳坑指南

作者: nowherespyfly | 来源:发表于2019-03-21 16:04 被阅读0次

今天重新整理代码,将代码文件放到不同文件夹下时,import的时候花式报错,总结一下今天遇到的问题,日后遇到新的问题再更新。

1. 根目录下import
a.py
b.py

这个是最naive的,a.py和b.py都在根目录下,想要在b.py中import a,直接import就可以了。

2. 不同级目录(非同目录)下import
c
|  a.py
b.py

a.py在目录c下,b.py和c同级,这时如果想要在b中import a,直接import c.a会报错。
你需要做的是,在c目录下加一个__init__.py文件,将目录c变成一个module。init文件内可以什么都不写。

3. 同目录(非根目录)下import
c
|  a.py
|  b.py

a.py和b.py都在c目录下,想要在b中import a,这时直接import就会报错。

ModuleNotFoundError: No module named 'a'

一般python会将根目录自动设置为source root,下面的文件夹就不会了,所以需要手动添加目录c到source root中,这样c下的文件就可以被找到。

import sys
sys.append('./c')

当然,也可以写c的绝对路径,但这样就导致别人想要使用你的代码时还要改路径才能跑,所以还是写相对路径吧233
但如果c下不只这两个文件,有很多文件,每个文件都要加这么两句很麻烦,所以可以直接在c下的__init__.py中添加路径。

4. 同级目录(不同目录)下improt
c
|  a.py
d
|  b.py

想要在b中import a,这个比较麻烦,我目前还没找到特别简单的做法,只能在b中加上

import sys
sys.path.append('..')
import c.a
5. pycharm中显示

pycharm显示也是一个问题,有时候运行不报错但是会显示找不到module。右击文件夹,mark directory as -> sources root,就可以了。

相关文章

网友评论

      本文标题:python之import跳坑指南

      本文链接:https://www.haomeiwen.com/subject/cwjqvqtx.html