python 第三方包 source怎么导入

Python09

python 第三方包 source怎么导入,第1张

我们知道,定义在环境变量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__ 变量;该变量包含执行这样的语句时应该导入的模块的名字;它由一个模块名字符串列表组成。

python引包的三种方法:1、输入“import 包名”命令导入2、输入“from 包名 import 模块名”命令导入3、输入“from 包名.模块名 import 成员名”导入。

包其实本质上是模块,因此导入模块的语法同样也适用于导入包。无论导入我们自定义的包,还是导入从他处下载的第三方包,导入方法可归结为以下 3 种:

import 包名[.模块名 [as 别名]]

from 包名 import 模块名 [as 别名]

from 包名.模块名 import 成员名 [as 别名]

用 [] 括起来的部分,是可选部分,即可以使用,也可以直接忽略。

注意,导入包的同时,会在包目录下生成一个含有 __init__.cpython-36.pyc 文件的 __pycache__ 文件夹。

1、python引包的方法——import 包名[.模块名 [as 别名]]

以 my_package 包为例,导入 module1 模块并使用该模块中成员可以使用如下代码:

import my_package.module1

my_package.module1.display("http://c.biancheng.net/java/")

运行结果为:

http://c.biancheng.net/java/

可以看到,通过此语法格式导入包中的指定模块后,在使用该模块中的成员(变量、函数、类)时,需添加“包名.模块名”为前缀。当然,如果使用 as 给包名.模块名”起一个别名的话,就使用直接使用这个别名作为前缀使用该模块中的方法了,例如:

import my_package.module1 as module

module.display("http://c.biancheng.net/python/")

程序执行结果为:

http://c.biancheng.net/python/

另外,当直接导入指定包时,程序会自动执行该包所对应文件夹下的 __init__.py 文件中的代码。例如:

import my_package

my_package.module1.display("http://c.biancheng.net/linux_tutorial/")

直接导入包名,并不会将包中所有模块全部导入到程序中,它的作用仅仅是导入并执行包下的 __init__.py 文件,因此,运行该程序,在执行 __init__.py 文件中代码的同时,还会抛出 AttributeError 异常(访问的对象不存在):

http://c.biancheng.net/python/

Traceback (most recent call last):

File "C:UsersmengmaDesktopdemo.py", line 2, in

my_package.module1.display("http://c.biancheng.net/linux_tutorial/")

AttributeError: module 'my_package' has no attribute 'module1'

我们知道,包的本质就是模块,导入模块时,当前程序中会包含一个和模块名同名且类型为 module 的变量,导入包也是如此:

import my_package

print(my_package)

print(my_package.__doc__)

print(type(my_package))

创建第一个 Python

2、python引包的方法——from 包名 import 模块名 [as 别名]

以导入my_package 包中的 module1 模块为例,使用此语法格式的实现代码如下:

from my_package import module1

module1.display("http://c.biancheng.net/golang/")

运行结果为:

http://c.biancheng.net/python/

http://c.biancheng.net/golang/

可以看到,使用此语法格式导入包中模块后,在使用其成员时不需要带包名前缀,但需要带模块名前缀。

当然,我们也可以使用 as 为导入的指定模块定义别名,例如:from my_package import module1 as modulemodule.display("http://c.biancheng.net/golang/")

此程序的输出结果和上面程序完全相同。

同样,既然包也是模块,那么这种语法格式自然也支持 from 包名 import * 这种写法,它和 import 包名 的作用一样,都只是将该包的 __init__.py 文件导入并执行。

3、python引包的方法——from 包名.模块名 import 成员名 [as 别名]

此语法格式用于向程序中导入“包.模块”中的指定成员(变量、函数或类)。通过该方式导入的变量(函数、类),在使用时可以直接使用变量名(函数名、类名)调用,例如:

from my_package.module1 import display

display("http://c.biancheng.net/shell/")

运行结果为:

http://c.biancheng.net/python/

http://c.biancheng.net/shell/

当然,也可以使用 as 为导入的成员起一个别名,例如:

from my_package.module1 import display as dis

dis("http://c.biancheng.net/shell/")

该程序的运行结果和上面相同。

另外,在使用此种语法格式加载指定包的指定模块时,可以使用 * 代替成员名,表示加载该模块下的所有成员。例如:

from my_package.module1 import *

display("http://c.biancheng.net/python")

以上就是《python引包的方法有哪些?这三种方法才是你最需要的》的全部内容,Python是一种动态解释的、强类型定义语言:编写它时不需要定义变量类型,运行时变量类型被强制固定,如果你想知道更多的python的相关方法,可以点击本站的其他文章进行学习。

第一种pip方式,现在python都带pip,直接pip install 包名就行了

第二种基本安装方法

1 下载第三方包,解压

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

3 输入Python setup.py build

4 输入python setup.py install

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