python中创建一个包并引用使用的操作方法
作者:张小丹 发布时间:2023-05-19 03:06:09
一、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
来源:https://www.cnblogs.com/learning9/p/16537402.html


猜你喜欢
- 首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。接着重点要说
- 某天,在需要抓取某个网页信息的时候,需要在header中增加一些信息,于是搜索了一下,如何在golang发起的http请求中设置header
- 本文实例讲述了python中pygame针对游戏窗口的显示方法。分享给大家供大家参考,具体如下:在这篇教程中,我将给出一个demo演示:当我
- 1.turtle库turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0
- 【原文地址】 Tip/Trick: How to upload a .SQL file to a Hoster and
- CTE(Common Table Expressions)是从SQL Server 2005以后版本才有的。指定的临时命名结果集,这些结果集
- :hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。或许
- 出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-
- 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似。但是这个方法不是总能有
- go简单代码反汇编用简单的代码用以分析go的调用约定及多返回值的返回方式。package mainfunc vals(c, d int) (
- 一、图图:数据(张量Tenrsor)+ 操作(节点Operation) (静态)图可以用:1、默认图;2、自定义图。1、默认图查看默认图的方
- bool assert ( mixed $assertion [, string $description ] ) — 检查一个断言是否为
- 1.检查mysql是否安装yum list installed | grep mysql如果有的话 就全部卸载yum -y remove +
- gRPC HTTP协议转换正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with
- 由于最近有个任务需要在python环境下跑,项目是python3.6 + tensorflow1.3.1.现总结安装环境:卸载Python3
- 需求背景业务表tb_image部分数据如下所示,其中id唯一,image_no不唯一。image_no表示每个文件的编号,每个文件在业务系统
- PHP 异常处理异常用于在指定的错误发生时改变脚本的正常流程。异常是什么异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情
- MySQL性能优化在互联网公司MySQL的使用非常广泛,大家经常会有MySQL性能优化方面的需求。整理了一些在MySQL优化方面的实用技巧。
- import socketimport Queueimport threadingdef worker(): &nbs
- 1、用户有三种:活跃用户、沉睡用户、外部用户。2、据不完全统计,外部用户8亿,沉睡用户1.2亿,活跃用户1千万。3、就算不去管活跃用户,或者