1、导包时使用绝对路径,相对路径可能会报错
2、__init.py__文件
init.py文件存在包的根目录下,当包或者包中的任意模块或模块中变量、函数被导入时,init.py中内容会首先自动被执行。因此,init.py文件可以实现如下应用:
A、限制本包的模块导入
在__init__.py中写入内置函数__all__,决定哪些模块可以被外部导入。
all = [“module_name1”, “module_name2”]
B、批量导入
如果包内多个模块文件都需要用到某些模块文件时,可以在包的__init__.py文件中导入需要的模块文件,然后就可以在本包不同的模块文件中直接使用导入的模块 。
3、Python在导入模块时,会执行模块里的所有内容,但多次导入只会执行一次。
4、Import导入包或模块时,Python 解释器寻找模块的优先级如下:
A、当前目录
B、环境变量PYTHONPATH
C、sys.path(list 类型)
导入 spam 模块时,解释器首先查找名为 spam 的内置模块。如果没找到,解释器再从 sys.path 变量中的目录列表里查找 spam.py 文件。sys.path 初始化时包含以下位置:
输入脚本的目录(或未指定文件时的当前目录)。
PYTHONPATH (目录列表,与 shell 变量 PATH 的语法一样)。
默认安装目录。
5、在模块内使用内置__all__属性指定本模块可以导出的变量或函数,外部导入只能使用指定的变量或函数。
#!/usr/bin/python3
__all__ = ["variable1", "variable2", "function_name1", "function_name2"]
variable1 = 0
variable2 = 0
def function_name1(args):
pass
def function_name2(args):
pass
6、Python项目目录结构
通常,Python项目的目录结构如下:
README:项目说明文档。
bin(scripts):存放项目的可执行脚本。
project_name:存放项目的所有源代码,程序的入口文件最好命名为main.py。
docs: 存放项目文档。
tests:测试代码目录。
extras:项目扩展部分,不属于项目必需的部分,存放与项目相关的sample、poc,通常子目录如下dev_example、production_example、test1_poc、test2_poc。
setup.py:项目安装、部署、打包的脚本。
requirements.txt:存放软件依赖的外部Python包列表。
README:项目说明文件。
LICENSE.txt:版权声明
ChangeLog.txt:版本变更日志记录
AUTHORS:作者清单
INSTALL:安装说明
MANIFEST.in:装箱清单文件
MAKEFILE:编译脚本