=Start=
缘由:
整理一下Python模块引入相关的小知识点,方便以后参考和使用。
正文:
参考解答:
在引入模块时,最好按照以下顺序进行import:
- 标准库模块(比如:sys/os/re等);
- 第三方库模块(比如:MySQLdb/requests等);
- 本地自开发模块;
具体到某一模块的import方式一般有以下3种:
import pandas
from pandas import DataFrame
from pandas import *
- 在这里推荐用第一种,虽然在使用的时候要多敲一些字符,比如:pandas.foo,但是这样有独立的命名空间,不易引起歧义;
- 其次推荐第二种,但在本地代码中要注意避免重名,否则可能出现非预期的情况。
Python中的 sys.path.append() 和 sys.path.insert()
Python程序中使用 import xxx 时,Python解析器会在当前目录、Python标准库模块和第三方模块目录中搜索 xxx,如果都搜索不到就会报错。
使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在Python程序退出后失效。
# 1. 将指定的「相对目录」和「绝对目录」加入搜索路径中
import sys
sys.path.append('..') #表示导入当前文件的上层目录到搜索路径中
sys.path.append('/home/model') # 绝对路径
from folderA.folderB.fileA import functionA
# 2. 将「当前目录」加入搜索路径中
import os,sys
sys.path.append(os.getcwd())
# 3. 定义搜索优先顺序
import sys
sys.path.insert(1, "./model")
sys.path.insert(1, "./model")
定义了添加的搜索路径的优先顺序,序号从0开始,表示最大优先级,sys.path.insert()加入的也是临时搜索路径,程序退出后失效。
参考链接:
- What are the “best practices” for using import in a module?
- Importing modules in Python – best practice
- Absolute vs Relative Imports in Python
- Python中的 sys.path.append() 和 sys.path.insert()
https://www.cnblogs.com/mtcnn/p/9411730.html - sys.path.insert()用法
- https://stackoverflow.com/questions/31291608/effect-of-using-sys-path-insert0-path-and-sys-pathappend-when-loading-modul
- https://stackoverflow.com/questions/10095037/why-use-sys-path-appendpath-instead-of-sys-path-insert1-path
- https://askubuntu.com/questions/470982/how-to-add-a-python-module-to-syspath
- Modules and Imports
=END=
《“Python中的模块引入”》 有 1 条评论
学习到了,感谢作者的记录和分享。