这里主要介绍第二种方法:通过.ph文件进行设置,好处是可以将路径设为永久路径
步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\\Python\\mulib.我这里新建的文件路径的文件夹命名为"mulib"
这个问题涉及到包和模块管理.包名和模块名一般是小写.你的文件是下面的结构,需要创建空文件 b/__init__.py,将b目录变成package.a/a.py
from b.c import indexindex()
b/c.py
def index(): print("hello")
b/__init__.pya/a.py 里面有两种引用方式,相对引用和绝对引用:# 如果a.py是 library,两种引用方式都可以
from ..b.c import index
# 如果a.py是 executable,必须使用绝对引用
from b.c import index
如果使用绝对引用,需要确保b所在目录在PYTHONPATH (sys.path)里面,比如可以这样执行:
env PYTHONPATH=. python a/a.py
看你用哪种方式
如果是import
包名,就是包名.函数名方式调用
如果是from
包名
import
函数名、from
*,就是直接函数名就可以调用
没有可以自动导入的工具,只能手动导入模块
python环境变量设置可以在系统环境变量里设置PYTHONPATH
也可以使用python命令行设置,
cmd
python
import sys
sys.path.append(path of your lib-dir)
exit
from xxx import *
就行了
比如math中的sin
from math import *
sin(x)这样就行了
包通常是使用用"圆点模块名"的结构化模块命名空间.例如,名为 A.B 的模块表示了名为 A 的包中名为 B 的子模块.正如同用模块来保存不同的模块架构可以避免全局变量之间的相互冲突,使用圆点模块名保存像 NumPy 或 Python Imaging Library 之类的不同类库架构可以避免模块之间的命名冲突.
假设你现在想要设计一个模块集(一个"包")来统一处理声音文件和声音数据.存在几种不同的声音格式(通常由它们的扩展名来标识,例如:.wav, .aiff,.au ),于是,为了在不同类型的文件格式之间转换,你需要维护一个不断增长的包集合.可能你还想要对声音数据做很多不同的操作(例如混音,添加回声,应用平衡 功能,创建一个人造效果),所以你要加入一个无限流模块来执行这些操作.你的包可能会是这个样子(通过分级的文件体系来进行分组)
当导入这个包时,Python 通过 sys.path 搜索路径查找包含这个包的子目录.
为了让 Python 将目录当作内容包,目录中必须包含 __init__.py 文件.这是为了避免一个含有烂俗名字的目录无意中隐藏了稍后在模块搜索路径中出现的有效模块,比如 string.最简单的情况下,只需要一个空的 __init__.py 文件即可.当然它也可以执行包的初始化代码,或者定义稍后介绍的 __all__ 变量.
用户可以每次只导入包里的特定模块,例如:
import sound.effects.echo
这样就导入了 sound.effects.echo 子模块.它必需通过完整的名称来引用:
导入包时有一个可以选择的方式:
from sound.effects import echo
这样就加载了 echo 子模块,并且使得它在没有包前缀的情况下也可以使用,所以它可以如下方式调用:
还有另一种变体用于直接导入函数或变量:
from sound.effects.echo import echofilter
这样就又一次加载了 echo 子模块,但这样就可以直接调用它的 echofilter() 函数:
需要注意的是使用 from package import item 方式导入包时,这个子项(item)既可以是包中的一个子模块(或一个子包),也可以是包中定义的其它命名,像函数、类或变量.import 语句首先核对是否包中有这个子项,如果没有,它假定这是一个模块,并尝试加载它.如果没有找到它,会引发一个 ImportError 异常.
以上就是土嘎嘎小编为大家整理的python加载函数包相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!