python外部包使用说明方式导入?

Python013

python外部包使用说明方式导入?,第1张

除了让包内导入更加显式,这个功能的一部分设计初衷是,为了帮助脚本解决同名文件出现在模块搜索路径上多个不同位置时的二义性。考虑包目录,这定义了一个名为mypkg 的包,其中含有名为mypkg.main和mypkg.string 的模块。现在,假设模块main试图导入名为string的模块。在 Python 2.X和更早版本中,Python会先寻找mypkg目录以执行相对导入。这会找到并导入位于该处的string.py文件,将其赋值给mypkg.main模块命名空间内的名称string。不过,这一导入的本意可能是要导入Python标准库的string模块。可惜的是,在这些Python版本中,无法直接忽略mypkg.string 去寻找位于模块搜索路径更右侧的标准库中的string模块。此外,我们无法使用完整包导入路径来解决这个问题,因为我们无法依赖在每台机器上的标准链接库路径。换句话说,包中的简单导入可能具有二义性而且容易出错。在包内,我们无法确定imports pam语句指的是包内的模块还是包外的模块。一种可能的后果是,一个局部的模块或包会在不经意间隐藏了sys.path 上的另一个模块。在实践中,Python使用者可以避免为他们自己的模块重复使用标准库模块的名称(如果需要标准string库,就不要把新的模块命名为string)。但是,一个包还是有可能意外地隐藏标准库模块。再者,Python 以后可能新增标准库模块,而其名称可能刚好就和自己的一个模块同名。而依赖于没有点号开头相对导入的程序代码同样也不容易理解,因为读者可能对希望使用哪个模块而感到困惑。所以我们最好能在代码中显式地指出导入的解析过程。

我们知道,定义在环境变量PYTHONPATH里是可以直接用import导入的。下面我们来操作如何从非pythonpath目录导入第三方包或者自己定义的包。

假定我们的包有如下的目录结构:person 是最顶层的包,man、woman、child是子包

person\

__init__.py

person.py

man\

__init__.py

goodman.py

child\

__init__.py

lovelychild.py

woman\

__init__.py

goodwoman.py

首先,我们把包所在目录(c:\testpackage)加入到sys.path路径里

>>>import sys

>>>sys.path.append("c:\\testpackage")

注意:路径分隔符一定要写成”\\”的

1、用import方式 导入包,此种方式必须写全包的路径

>>>import person.person

>>>person.person.printperson()

person

>>>import person.man.goodman

>>>person.man.goodman.printman()

man

>>>import person.woman.goodwoman

>>>person.woman.goodwoman.printwoman()

woman

>>>import person.man.child.lovelychild

>>>person.man.child.lovelychild.printchild()

child

2、用from * import *方式导入包

>>>from person import person

>>>person.printperson()

person

>>>from person.man import goodman

>>>goodman.printman()

man

>>>from person.man.child import lovelychild

>>>lovelychild.printchild()

child

>>>from person.woman import goodwoman

>>>goodwoman.printwoman()

woman

也可以用以下方式:

>>>from person import *

>>>person.printperson()

person

>>>from person.man import *

>>>goodman.printman()

man

>>>from person.man.child import *

>>>lovelychild.printchild()

child

注意:这样的语句会导入哪些文件取决于操作系统的文件系统;所以我们在__init__.py 中加入 __all__ 变量;该变量包含执行这样的语句时应该导入的模块的名字;它由一个模块名字符串列表组成。

第一种基本安装方法

1 下载第三方包,解压

2 在命令提示符里输入cmd,然后用cd进入到第三方包的路径下

3 输入python setup.py build

4 输入python setup.py install

看到包内的文件在安装即可……

第二种 用pip安装

pip可以很方便的安装、卸载和管理Python的包。

pip install xxxx

第三种 直接安装anaconda3,大部分常用依赖包都已经有了。