首页 > 其他分享 >05-模块和包的概念

05-模块和包的概念

时间:2023-12-15 14:23:24浏览次数:28  
标签:__ sudo 05 setup py 概念 模块 pip

模块和包

模块是python的源文件,即.py 文件。模块支持导入,一个模块可以导入其他系统提供或第三方模块,可以使用其中提供好的全局变量、函数等。若导入的模块名字过长,也可以使用 as 使用别名。

import 会导入一个模块中所有内容,如果只想使用部分内容,可使用 from 模块 import 部分 这种形式进行导入。每个模块都具备一个属性 __name__ 可以很方便的进行模块之间的测试,当执行当前文件时,__name__ 就是当前模块的名字。如果被其他模块导入,就是模块名字。

import request
import request as req
from request import xxx

if __name__ == '__main__':
    pass
	# 执行当前模块

包,是一个包含多个模块的目录。写了多个模块之后,放在一个目录下,将包发布给他人使用。包中具备一个__init__.py 的文件,在该文件中,可以指定对外界提供的模块。 外界import 包名,就可以使用包中向外提供的所有模块。

__init__.py

from . import xxx
from . import yyy

编译模块

编译模块包,通过 build ,生成一个build 目录。

python3 setup.py build

打包模块

打包模块通过 sdist 将模块包进行打包。

python3 setup.py sdist

setup.py

from distutils.cor import setup

setup(
	name="xxx",  # 包名
	version="",  # 版本
	description="", # 描述信息
	author="xxx", # 作者
	author_email="", # 邮箱
	url="xxx",		# 主页
	py_modules=(["", ""]) # 添加的modules
)

setup.py中添加的py_modules 需要在 __init__中向外提供。

安装模块

sudo python3 setup.py install 是用于安装模块的,模块经过打包之后会形成一个 tar.gz 的文件包。对其进行解压安装。

卸载模块

从安装目录下,将安装过的模块删除掉即可。

cd /usr/local/lib/python3.xx/dist-packages/
sudo rm -rf xxx 包名

pip

pip 是python安装三方模块的一个官方工具,一些听过或者需要使用的模块可以直接使用pip进行下载。

安装pip,在windows平台下安装python的时候可以勾选。

在ubuntu平台,通过 apt 下载安装pip

sudo apt install pip

因为python3的原因,所以pip有可能以pip3的形式调用。

sudo apt install pip3-python

通过pip下载模块

sudo pip3 install request
sudo pip3 uninstall request

pip默认使用官方的安装源,为了更快的下载速度,可修改pip的下载源为国内。

在~/.pip 目录下,创建 pip.conf 文件。
[global]
timeout=6000
index-url=http://pypi.douban.com/simple
trusted-host=pypi.douban.com

windows下如果修改安装源,通过C:\Users\Administrator\AppData\Roaming\pip下创建 pip.ini 文件。

[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

总结:

总体而言,python中的每个文件都是按照模块的概念进行划分,一个源文件就是一个模块,多个模块在一起的目录称之为包。发布项目也就是发布包。发布包就需要对项目进行打包。(目前我也不太理解为什么需要对项目进行编译build),一个包中,通过__init__.py 文件中,可以声明哪些模块对外界提供,setup.py 是和包同级目录的,不在包内,通过配置setup.py,就可以进行如:编译、打包、安装 等工作。具体的命令:

sudo python3 setup.py build
sudo python3 setup.py sdist
sudo python3 setup.py install

既然有了模块的概念,那么就可以去其他平台、网站去下载三方包,三方模块供自己使用。python官方提供了下载器,可以下载三方模块。使用pip,pip需要自行下载。总结这里只概括ubuntu下的内容,下载pip之后,通过pip下载/卸载 模块。

sudo apt install pip
pip3 install request
pip3 uninstall request

pip默认是官方的下载源,切换成国内,需要在家目录下创建 .pip 目录,并创建文件 pip.conf

~/.pip/pip.conf :
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

之后就可以利用更多的模块、包进行创造。

标签:__,sudo,05,setup,py,概念,模块,pip
From: https://www.cnblogs.com/zxinlog/p/17903276.html

相关文章

  • windows安全基本概念
    基本概念账户安全账号信息存储(SAM)SAM:securityaccountmanagerSAM对账户的管理是通过安全标识进行的,每个账户的安全标识是唯一的,账户被创建时,安全标识就会产生。SAM文件是windows的一个账户数据库,存储了登录名、密码等信息。该文件是加密存储的,只有system权限可以访问路径:1......
  • Day05 变量
    Day05变量定义:在程序执行过程中,其值有可能发生改变的量(数据)使用场景:当某个数据经常发生改变时,我们也可以用变量存储。当数据变化时,只要修改变量里面变化的值即可。变量的定义格式数据类型变量名=数据值;(数据值:存在空间里面的数值)(变量名:为空间起的名)(数据类型:为空间......
  • Docker相关概念
    镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。(安装包)容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。仓库(repository):仓库就是存放镜像的地方!仓库分为公有仓库和私有仓库! 一切......
  • 模块与包&相对绝对路径
    【一】模块与包(1)什么是模块在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能。(2)模块的来源内置的:python解释器自带的,直接拿来使用的第三方的:别人写的,如果想用,就要先下载在使用自定义的:我们自己写的(3)模块的存在形式......
  • python heapq 模块
    堆的概念堆是用数组表示的二叉树,分为大根堆和小根堆:大根堆是堆顶元素最大的堆,小根堆是堆顶元素最小的堆 堆的建立堆用列表来表示。在往堆中加入元素时,在列表最后加入一个元素并与其父节点比较(n/2位置)看是否需要进行交换,然后层层比较直到根节点pythonheapq#建立小根堆......
  • 模块与包
    【一】模块模块(Module)是指包含了一组相关功能的代码集合,可以通过导入(import)的方式在其他程序中重复使用。在Python中,一个模块可以是一个包含了函数、类、变量和语句的.py文件。模块提供了一种组织和重用代码的方式,使得代码的编写、维护和理解都变得更加简单和高效。通过将相关......
  • 模块与包
    模块与包1.导入模块与包1.1import语法importxxx模块名#import语句无法加载到模块下面的变量名,他只能加载到模块名##import只能导入模块名#此时我在src包下的login_register.py模块中,我想引用add_bank模块内的方法importadd_bank#引用add_bank里的方法,需要加......
  • 模块与包
    【模块】定义 使用方法(import文件名  使用) (from文件名 import 需要调用的东西) (formimport 案例) (包的定义) (yild生成器) (模块导入的优先级) ......
  • Python项目之ATM1.0多模块函数
    ATM1.0多模块【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流......
  • 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
    原文链接:https://www.cnblogs.com/ReBack2010/p/3713851.html上午从公司前辈那里拷贝到的ASP.NET代码,在自己机器上部署的时候发现问题,直接报错,找不到指定的模块,异常来自HRESULT:0x8007007E。并且一大堆警告。在网上百度很多解决方法,归纳如下:1、缺少DLL文件,我用depends打开我的B......