python中、模块、包初识

  模块:逻辑上组织python代码(变量、函数、类、逻辑:实现功能),以.py为结尾的python文件。(test.py 文件,对应的模块名:test)

  包:用来从逻辑上组织模块的,本质就是一个目录(带有__init__.py的文件)。

  导入方法:

    import test

    from test import *

    from test import name,age

    from test import name as name_test   //从test中导入name变量后,变量名更改为name_test (防止当前模块中也有‘‘name‘‘变量

  

  import:(路径搜索和搜索路径)

    导入模块就是把被导入的模块(python文件)解释一遍.

    导入包就是把被导入包中的__init__.py 解释一遍.

  在我们导入 文件/包 的时候,我们所搜索的路径都是在当前文件(相同/同级)下中导入的,如果被导入的文件没有和当前文件是(相同/同级)目录下,单纯的impot是导入不成功的。

  这里就要用到os.sys.path这个方法

>>> import os
>>> os.sys.path
[‘‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip‘,
 ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5‘,
 ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin‘,
 ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload‘,
 ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages‘]

  这里os.sys.path 就是环境变量,如果说想要import 模块/包,那都是从这个list中的路径中查找 模块/包 的,所以想要import不是同级目录中的文件,可以把这个程序的目录添加到环境变量中,然后再进行import就可以了 找到所要import文件的目录,加到环境变量中。

abs_path = os.path.abspath(__file__) #当前文件的绝对路径
base_path =os.path.dirname(abs_path)  #当前目录的父级目录
os.sys.path.insert(0,base_path)
#将目标文件的目录添加到环境变量中,因为路径搜索是从list第一个元素进行搜索,所以把目录添加到第一位是为了能够更快的查找,也防止在其他目录下有与目标文件重名的文件.了能够更快的查找,也防止在其他目录下有与目标文件重名的文件.
时间: 2024-11-10 14:33:16

python中、模块、包初识的相关文章

Python中的包ImportError

前言 Python中的包给我提供了很好的代码组织,相似的功能模块放在同一个包内,不仅代码结构清晰,而且调用起来也比较方便(可以用*导入) 但是,我们在刚开始使用Python包的时候总是会遇到导入错误"ImportError: No module named 'xxx'“,下面我们来简单介绍一下如何解决这类问题 Python中的包 Python中的包就和C#中的dll一样都是一些模块(或者类库)的集合.Python中新创建的包其实只有两个文件,一个是以包名命名的文件夹和其中的一个__init__.

3. python中的包和库

3.1模块和包的概念 当代码越来越多时,当把所有的代码都集中于一个文件中时,难以维护 将代码分开放在不同的py文件中,易于维护,同一名字的变量和函数互不影响 如 #a.py x=5 def f1(): pass #b.py x='str' def f1(iterable): pass a.py和b.py中变量和函数互不影响 将a.py称为模块a,将b.py称为模块b,可见,模块的名字就是.py文件的名字 引入第三方的模块 #test.py import math print math.pow(2

查看python中模块的所有方法

查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 在交互式解释器中输入>>> help("modules")即可,效果跟在命令行下输入$ pydoc modules是一样的 三.在python交互的解释器下导入sys模块查看 # python的sys模块也是可以用来查看模块信息的     >

使用Python中NetworkX包绘制深度神经网络结构图

1 """ 使用Python中NetworkX包绘制深度神经网络结构图 """ 2 # 导入相应包 3 import networkx as nx 4 import matplotlib.pyplot as plt 5 6 # 创建DAG 7 G = nx.DiGraph() 8 9 # 创建结构图顶点列表 10 vertex_list = ['v'+str(i) for i in range(1, 22)] 11 12 # 添加结构图顶点 13

python中的包

python中的包通俗来讲是一系列模块文件的组合,在一个文件夹内,这个文件夹就是就是包. 首次导入包: 产生一个执行文件的名称空间:1,创建包下面的__init__.py文件的空间名称.2,执行包下面的__init__.py文件中的代码,将产生发名称放入包下面的__init__.py文件名称空间中.3,在执行文件中拿到一个指向包下面__init__.py文件名称空间的名字.下图是包在pycharm中创建的步骤.创建完成之后会在文件下自动生成一个__init__.py文件. __init__.py

Python常用模块——包&跨模块代码调用

Python常用模块--包&跨模块代码调用 一.包(Package) 当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相关的放一个文件夹. my_proj/ ├── apeland_web #代码目录 │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── tests.py │ └── views.py ├── manage.py └── my_proj #配置

第七篇、Python之模块/包

一.模块(module)的概念 1.模块定义和分类 在python中,一个.py文件就称之为一个模块(Module). 模块的使用方式都是一样的,细分模块可以分为三类: 1 自定义模块:使用python编写的单个.py文件,或者把一系列的.py文件组织在一起的文件夹.(注:文件夹下有个__init__.py文件,该文件夹称之为包) 2 第三方模块:已被编译为共享库或DLL的C或C++扩展 3 python标准库:使用C编写并链接到python解释器的内置模块 2.模块优点 1) 从文件级别组织程

python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

python 中 模块,包, 与常用模块

一 模块 模块:就是一组功能的集合体, 我们的程序可以直接导入模块来复用模块里的功能 导入方式 一般为 : import 模块名 在python中, 模块一般分为四个通用类别 1使用python编写.py 文件 2.已被编译为共享库或DLL 的c 或c++扩展 3把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用c编写并链接到python解释器的内置模块 使用模块的优点: 1.从文件级别组织程序, 更方便管理 2.拿来主义, 提升开发效率

python中模块和包的概念

1.模块 一个.py文件就是一个模块.这个文件的名字是:模块名.py.由此可见在python中,文件名和模块名的差别只是有没有后缀.有后缀是文件名,没有后缀是模块名. 每个文件(每个模块)都是一个独立的名称空间,也就是说可以在两个(多个)文件中出现同名的函数. import,from.....import...两种导入的区别: 1.import 按模块区分拥有独立的命名空间,要是想使用模块中的函数需要使用      模块名.函数名       的方式来使用. 可以使用import.....as.