python中创建一个包并引用使用的操作方法

一、Python包

python包在开发中十分常见,一般通过导入包含特定功能的python模块包进行使用。当然,也可以自己创建打包模块,然后发布,安装使用。

1、安装包

在线安装包:pip install 包名;
安装第三方包:python setup.py  install (几乎每个python第三方包中都有这个setup.py文件,这个文件是作者打包时设置的文件,而安装第三方包时,也是要先进入到setup.py文件所在目录,然后执行python setup.py install)

2、distutils 和 setuptools 两种打包的工具

distutils

distutils 是 python 标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。当我们开发了自己的模块之后,使用distutils的setup.py打包。
使用详情如下:
(1)在自己项目的根目录下新建一个setup.py的脚本,然后在脚本中输入下面的代码,假设你要打包的module名称为str.py

from distutils.core import setup
setup (
    name = 'str',
    version = '1.0',
    py_modules = ['str'],
)

(3)根目录下执行打包命令:python setup.py sdist ,将自己的python文件打包,此时会发现多了一个文件夹dist,此文件夹下面多了一个str-0.1.tar.gz的压缩包,这个压缩包里面就是untitled目录下的项目代码

(4)安装包:进入cmd,然后输入dos命令进入setup.py文件所在目录,然后输入python setup.py install。

setuptools

setuptools是distutils的增强版。它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块setup.py即可。

使用详情如下:

(1)安装pip install python-setuptools后,在自己项目的根目录下新建一个setup.py的脚本(注意:每个目录中都需要创建一个init.py的文件,表示这个目录是一个包)

from setuptools import setup, find_packages
setup(
    name = "demo",
    version = "0.1",
    packages = find_packages(), # 代表在当前目录,以及当前目录下,所有的python包(带__init__.py的目录)都搜索,并一起打成egg文件包。find_packages(xyz),就是搜索名称为xyz的包,以及xyz的下层目录的包搜索出来,并一起打成egg文件包
    include_package_data=True, #包含数据文件
    install_requires=reqs, #指明依赖,该参数包含说明依赖的字符串或列表
)

(2)根目录下执行打包命令:python setup.py sdist_egg即可打包一个egg格式的包。可以看到,里面是一系列自动生成的文件。如图:

(3)而dist中的压缩包就是安装包,此时默认的egg包,egg包就是zip包,如果需要使用egg包,简单方法是name将egg后缀改成zip解压即可(或者进入cmd,然后输入dos命令进入setup.py文件所在目录,然后输入python setup.py install)(4)测试导入包:

实际项目中,安装非官方的第三方包时,可以下载到本地后,在setup.py文件夹下执行python setup.py install,或者在包根目录通过pip install -e . 安装pip会自动将包复制到site-packages,他的作用是:

  • 安装site-packages/PackageName.egg-link文件
  • 添加路径 site-packages/easy-install.pth

到此这篇关于python中如何创建一个包并引用使用?的文章就介绍到这了,更多相关python创建包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解python如何引用包package

    python中引用包的方法: python中引用包可以使用"import 包名"语句引用包 示例:引入time import time 也可以用"from 包名 import 类名"的方式引用包 示例:引入time.time类 from time import time 内容扩展: 什么是Python Package 如何区分你看到的目录是一个Python Package包呢?其实很简单,你只要看这个名录下是否有"__init__.py"这个文件

  • Python虚拟环境的创建和包下载过程分析

    为什么使用虚拟环境 因为直接在真实环境进行安装python的包会造成环境之间的污染,因此需要创建虚拟环境,原则上每一个项目都需要有一个独属于自己的虚拟环境 Python项目的每次运行都需要启动环境,如果所有的模块都在一个环境中,不仅每次加载这些模块慢(尤其是开发过程中),并且依赖还可能相互冲突,甚至有些新引入的依赖会修改已安装模块的版本!这是很可怕的一件事. 因此使每个项目都拥有自己独有的环境很有必要.即使他们的依赖一致也要这样做. 创建虚拟环境 语法 python -m venv virtau

  • pycharm创建一个python包方法图解

    pycharm怎么创建一个python包?在进行使用的一个的pycharm的那么就需要的根据的情况下,那么就需要的来进行创建一个python的包的相关的文件,那么小编告诉大家pycharm怎么创建一个python包? 首先,进行打开一个pycharm的软件的界面当中,进行点击菜单中的 file 的选项菜单. 进行点击了file 的菜单之后,弹出了下拉菜单选中为 new 的选项. 这样进行点击new之后,弹出了下一级菜单选中为 python package 的选项. 这样就会弹出了new pack

  • Python学习之时间包使用教程详解

    目录 datetime 时间包 datetime 时间包的常用功能 时间对象转字符串 时间字符串转时间类型 时间格式符 time模块 认识时间戳 time 模块的常用方法 datetime 中生成时间戳的函数 datetime 时间戳转时间对象 datetime 时间包 认识 datetime 时间包: date:日期:time:时间:所以 datetime 就是 日期与时间的结合体 使用 datetime 我们就可以获取当前的时间与时间间隔 可以将时间对象转成时间字符串 也可以将字符串转成时间

  • Python使用pyfinance包进行证券收益分析

    目录 pyfinance简介 returns模块应用实例 收益率计算 CAPM模型相关指标 风险指标 基准比较指标 风险调整收益指标 综合业绩评价指标分析实例 结语 技术交流 pyfinance简介 datasets.py :金融数据下载(基于request进行数据爬虫,有些数据由于外网受限已经无法下载): general.py:通用财务计算,例如主动份额计算,收益分配近似值和跟踪误差优化: ols.py:回归分析,支持pandas滚动窗口回归: options.py:期权衍生品计算和策略分析:

  • python中创建一个包并引用使用的操作方法

    一.Python包 python包在开发中十分常见,一般通过导入包含特定功能的python模块包进行使用.当然,也可以自己创建打包模块,然后发布,安装使用. 1.安装包 在线安装包:pip install 包名:安装第三方包:python setup.py  install (几乎每个python第三方包中都有这个setup.py文件,这个文件是作者打包时设置的文件,而安装第三方包时,也是要先进入到setup.py文件所在目录,然后执行python setup.py install) 2.dis

  • Python 中创建 PostgreSQL 数据库连接池

    目录 习惯于使用数据库之前都必须创建一个连接池,即使是单线程的应用,只要有多个方法中需用到数据库连接,建立一两个连接的也会考虑先池化他们.连接池的好处多多, 1) 如果反复创建连接相当耗时, 2) 对于单个连接一路用到底的应用,有连接池时避免了数据库连接对象传来传去, 3) 忘记关连接了,连接池幸许还能帮忙在一定时长后关掉,当然密集取连接的应用势将耗尽连接, 4) 一个应用打开连接的数量是可控的 接触到 Python 后,在使用 PostgreSQL 也自然而然的考虑创建连接池,使用时从池中取,

  • 在python中创建表格的两种方法实例

    目录 日常拉呱: 创建表格一般有两种方法: 一:通过导入xlwt创建 二:通过导入csv库来创建 1.写入数据 2.读取数据 总结 日常拉呱: 最近在学习爬虫模拟登陆各个软件,老师留有作业,模拟登录京东并爬取系列物品,可惜我还是个小白菜鸟,还是处于迷迷糊糊的状态,只能先了解一下边缘知识.爬取完数据,你是否在纠结这些数据放在哪呢?建一个表格或许会帮助到你! 创建表格一般有两种方法: 一:通过导入xlwt来创建,这种方法我比较喜欢,因为它够直观够容易理解,但是相对而言比较麻烦. 二:通过导入csv库

  • Python中创建表格详细过程

    目录 1. 引言 2. 准备工作 3. 举个栗子 3.1 使用list生成表格 3.2 使用dict生成表格 3.3 增加索引列 3.4 缺失值处理 1. 引言 如果能够将我们的无序数据快速组织成更易读的格式,对于数据分析非常有帮助. Python 提供了将某些表格数据类型轻松转换为格式良好的纯文本表格的能力,这就是 tabulate 库. 2. 准备工作 安装tabulate库: 安装tabulate库非常容易,使用pip即可安装,代码如下: pip install tabulate 导入ta

  • Python中的datetime包与time包包和模块详情

    目录 一.datetime包 1.timedelta(params…)得到一个时间增量对象 2.timezone(timedelta)+timedelta(params…)创建时区对象 3.datetime模块 datetime.strftime(fmt)datetime时间对象转字符串 datetime.strptime(date_string,fmt)字符串转成datetime时间对象 datetime.timestamp(datetime_obj)将datetime时间对象转换成秒级时间戳

  • Python中创建字典的几种方法总结(推荐)

    1.传统的文字表达式: >>> d={'name':'Allen','age':21,'gender':'male'} >>> d {'age': 21, 'name': 'Allen', 'gender': 'male'} 如果你可以事先拼出整个字典,这种方式是很方便的. 2.动态分配键值: >>> d={} >>> d['name']='Allen' >>> d['age']=21 >>> d[

  • Python中 传递值 和 传递引用 的区别解析

    对于不可变类型传递值(不会影响原数据) 不可变类型 对于可变类型传递引用(会影响原数据) 不可变类型传递引用 python3不可变类型 Number(数字) String(字符串) Tuple (元组) python3可变类型 List(列表) Dictionary (字典) Sets(集合) 参数传递的思考 我们声明的变量名可以看做便签 为变量名赋值的操作可以看做将标签贴到"值"的表面(值可以是可变类型,和不可变类型) 以链表中的节点对象为例(实例化的节点对象为不可变类型, 但对象中

  • 对Python中创建进程的两种方式以及进程池详解

    在Python中创建进程有两种方式,第一种是: from multiprocessing import Process import time def test(): while True: print('---test---') time.sleep(1) if __name__ == '__main__': p=Process(target=test) p.start() while True: print('---main---') time.sleep(1) 上面这段代码是在window

  • Python中创建二维数组

    二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩阵称为方阵.对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素. Python中创建二维数组 Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组.如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误. 一般Python中创建二

  • 在python中创建指定大小的多维数组方式

    python中创建指定大小的二维数组,有点像C++中进行动态申请内存创建数组,不过相比较而言,python中更为简单一些. 创建n行m列的二维数组: n = 2 m = 3 matrix = [None]*2 for i in range(len(matrix)): matrix[i] = [0]*3 print(matrix) 当然也可以使用list comprehension的方式创建: n = 2 m = 3 matrix = [[0]*m for i in range(n)] print

随机推荐