扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这里主要介绍第二种方法:通过.ph文件进行设置,好处是可以将路径设为永久路径
10年积累的成都做网站、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有新和免费网站建设让你可以放心的选择与我们合作。
在Python的安装目录下,找到 \Lib\site-packages 文件夹,在该文件夹下新建一个以.pth为后缀名的文件,编辑文件,内容为要添加的库路径。(我的文件名命名为setpath.pth)。添加路径示例:文件内容写入要引用的库路径
步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\\Python\\mulib。我这里新建的文件路径的文件夹命名为“mulib”
步骤2:保存文档时,将文件类型选为所有,文件名为 setpath.pth。文件名是什么无所谓,主要是只有当文档类型选为“所有文件”,才可以定义文件类型为.pth
步骤3:将保存好的文件放在Python的site-packages文件夹中就完成了。
这个问题涉及到包和模块管理。包名和模块名一般是小写。你的文件是下面的结构,需要创建空文件 b/__init__.py,将b目录变成package。a/a.py
12
from b.c import indexindex()
b/c.py
12
def index(): print("hello")
b/__init__.pya/a.py 里面有两种引用方式,相对引用和绝对引用:# 如果a.py是 library,两种引用方式都可以
1
from ..b.c import index
# 如果a.py是 executable,必须使用绝对引用
1
from b.c import index
如果使用绝对引用,需要确保b所在目录在PYTHONPATH (sys.path)里面,比如可以这样执行:
1
env PYTHONPATH=. python a/a.py
看你用哪种方式
如果是import
包名,就是包名.函数名方式调用
如果是from
包名
import
函数名、from
包名
import
*,就是直接函数名就可以调用
没有可以自动导入的工具,只能手动导入模块
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)这样就行了
6.4. 包
包通常是使用用“圆点模块名”的结构化模块命名空间。例如,名为 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 子模块。它必需通过完整的名称来引用:
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
导入包时有一个可以选择的方式:
from sound.effects import echo
这样就加载了 echo 子模块,并且使得它在没有包前缀的情况下也可以使用,所以它可以如下方式调用:
echo.echofilter(input, output, delay=0.7, atten=4)
还有另一种变体用于直接导入函数或变量:
from sound.effects.echo import echofilter
这样就又一次加载了 echo 子模块,但这样就可以直接调用它的 echofilter() 函数:
echofilter(input, output, delay=0.7, atten=4)
需要注意的是使用 from package import item 方式导入包时,这个子项(item)既可以是包中的一个子模块(或一个子包),也可以是包中定义的其它命名,像函数、类或变量。import 语句首先核对是否包中有这个子项,如果没有,它假定这是一个模块,并尝试加载它。如果没有找到它,会引发一个 ImportError 异常。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流