python的搜索路径实际上是一个列表(sys.path)
导入模块时python会自动去找搜索这个列表当中的路径,若是路径中存在要导入的模块文件则导入成功.python
在项目中若是要引用同级包或另外目录的包(非子包)时:git
In [1]: import sys In [2]: sys.path Out[2]: ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/IPython/extensions',]
mac-abeen:page_pth_test abeen$ tree -L 3 ├── dakjpka │ ├── __init__.py │ ├── pa │ │ ├── __init__.py │ │ ├── __pycache__ │ │ ├── pam.py │ │ └── pam_rf.py │ └── pb │ └── pbm.py └── tpackage.py
from package import module
import packageapp
pam.py测试
1 # -*- coding: utf-8 -*- 2 3 4 def pam_fun(): 5 print('p.pa pam_fun') 6 7 8 __all__ = ['pam_fun']
pam_rf.pycode
1 # -*- coding: utf-8 -*- 2 3 from pam import pam_fun 4 5 if __name__ == "__main__": 6 pam_fun()
查看python特定目录ip
In [3]: import site In [4]: site.getsitepackages() Out[4]: ['/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
增长目录内容utf-8
mac-abeen:pa abeen$ cat /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/dakj_project.pth /Users/abeen/abeen/alearn/python/page_pth_test /Users/abeen/abeen/ap/gitwork/dabda
增长后效果get
In [5]: sys.path Out[5]: ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', **'/Users/abeen/abeen/alearn/python/page_pth_test',** ** '/Users/abeen/abeen/ap/gitwork/dabda',** '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/IPython/extensions', '/Users/abeen/.ipython']
pbm.py 引用pam.py内的pam_fun以下it
1 # -*- coding: utf-8 -*- 2 3 # from dakjpka.pa import pam 4 import dakjpka.pa.pam as pam 5 6 7 def pbm_fun(): 8 print('p.pbm pbm_fun') | 9 pam.pam_fun() 10 11 12 if __name__ == '__main__': 13 pbm_fun() 14 15 16 __all__ = ['pbm_fun']
runio
mac-abeen:pb abeen$ python3 pbm.py p.pbm pbm_fun p.pa pam_fun