利用setuptools打包python程序的方法步骤
作者:风间悠香 时间:2023-07-20 08:57:47
一、准备工程文件
1.创建工程leeoo
2.在工程根目录下创建setup.py文件
3.在工程根目录下创建同名package
二、编辑setup.py
1.编辑setup.py文件
from setuptools import setup, find_packages
setup(
name='leeoo', # 包的名称
version='1.0', # 版本号
packages=find_packages(), # 动态获取packages
description="leeoo package",
author='Leo',
author_email='leo4774177@gmail.com',
url="None",
)
2.参数说明
三、编写测试代码
1.在leeoo package下创建pkg
2.test.py文件内容
def testfunc():
print("This is a test function..")
class TestClass(object):
def __init__(self, name):
self.name = name
print("This is a test Class..")
def get_name(self):
return self.name
3.将test.py中的内容全部导入到leeoo的__init__.py中
这样,以后import leeoo后,就可以直接使用leeoo.testfunc()了。
四、打包
1.命令行进入工程根目录
2.运行命令
(venv) D:\pycharm_workspace\leeoo>python setup.py check
running check
(venv) D:\pycharm_workspace\leeoo>python setup.py bdist_egg
running bdist_egg
running egg_info
creating leeoo.egg-info
writing leeoo.egg-info\PKG-INFO
writing dependency_links to leeoo.egg-info\dependency_links.txt
writing top-level names to leeoo.egg-info\top_level.txt
writing manifest file 'leeoo.egg-info\SOURCES.txt'
reading manifest file 'leeoo.egg-info\SOURCES.txt'
writing manifest file 'leeoo.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib
creating build\lib\leeoo
copying leeoo\__init__.py -> build\lib\leeoo
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\leeoo
copying build\lib\leeoo\__init__.py -> build\bdist.win-amd64\egg\leeoo
byte-compiling build\bdist.win-amd64\egg\leeoo\__init__.py to __init__.cpython-37.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist\leeoo-1.0-py3.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
3.查看生成的文件
在工程根目录下,可以看到生成了一系列文件:
五、安装leeoo
1.在工程目录下(setup.py所在目录)运行命令
D:\pycharm_workspace\leeoo>python setup.py install
running install
running bdist_egg
running egg_info
writing leeoo.egg-info\PKG-INFO
writing dependency_links to leeoo.egg-info\dependency_links.txt
writing top-level names to leeoo.egg-info\top_level.txt
reading manifest file 'leeoo.egg-info\SOURCES.txt'
writing manifest file 'leeoo.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\leeoo
copying build\lib\leeoo\__init__.py -> build\bdist.win-amd64\egg\leeoo
byte-compiling build\bdist.win-amd64\egg\leeoo\__init__.py to __init__.cpython-37.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying leeoo.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist\leeoo-1.0-py3.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing leeoo-1.0-py3.7.egg
Copying leeoo-1.0-py3.7.egg to d:\dev_apps\anaconda5.3.0\lib\site-packages
Adding leeoo 1.0 to easy-install.pth file
Installed d:\dev_apps\anaconda5.3.0\lib\site-packages\leeoo-1.0-py3.7.egg
Processing dependencies for leeoo==1.0
Finished processing dependencies for leeoo==1.0
2.查看安装好的文件
我们看到上述打印日志中,将leeoo-1.0-py3.7.egg安装到了d:\dev_apps\anaconda5.3.0\lib\site-packages。
六、使用leeoo
新建一个项目,然后导入leeoo:
import leeoo
leeoo.testfunc()
obj = leeoo.TestClass("demo")
print(obj.get_name())
也可以使用:
from leeoo.pkg import test
test.testfunc()
obj = test.TestClass("demo")
print(obj.get_name())
当然也可以直接将testfunc()和TestClass导入,但是容易引起命名冲突。
来源:https://www.cnblogs.com/leokale-zz/p/12207923.html
标签:setuptools,打包,python
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用opencv-python如何打开USB或者笔记本前置摄像头
2021-05-18 08:24:52
![](https://img.aspxhome.com/file/2023/0/70030_0s.jpg)
跟老齐学Python之for循环语句
2021-12-22 04:52:50
详解从vue的组件传值着手观察者模式
2024-05-10 14:19:01
![](https://img.aspxhome.com/file/2023/3/126413_0s.jpg)
python中bottle使用实例代码
2023-07-03 14:21:15
![](https://img.aspxhome.com/file/2023/9/105809_0s.png)
Python中Django发送带图片和附件的邮件
2023-11-09 16:59:03
![](https://img.aspxhome.com/file/2023/8/91848_0s.png)
python模型集成知识点总结
2023-08-03 00:16:16
Python 通过pip安装Django详细介绍
2022-09-01 20:25:55
ubuntu 16.04下python版本切换的方法
2021-07-10 16:36:04
![](https://img.aspxhome.com/file/2023/1/67871_0s.png)
Python 数据类型--集合set
2021-11-23 21:17:54
![](https://img.aspxhome.com/file/2023/4/68494_0s.png)
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2021-12-21 19:37:29
![](https://img.aspxhome.com/file/2023/6/77646_0s.jpg)
SQL Server SA权限最新入侵方法
2009-03-25 16:56:00
python+opencv实现文字颜色识别与标定功能
2023-09-05 02:25:27
![](https://img.aspxhome.com/file/2023/2/110012_0s.png)
python 七种邮件内容发送方法实例
2022-01-13 21:06:38
ASP 内建六大对象简介
2009-06-04 18:08:00
关于Pytorch中模型的保存与迁移问题
2023-08-11 04:05:25
创意设计:字母趣味组合
2008-01-26 18:50:00
![](https://img.aspxhome.com/file/UploadPic/20081/26/20081261932359s.jpg)
python安装及变量名介绍详解
2023-09-24 19:23:20
![](https://img.aspxhome.com/file/2023/7/77587_0s.png)
mysql命令提示行连接乱码的解决
2024-01-14 11:05:20
总结showModalDialog和showModelessDialog用法
2007-11-24 08:26:00
PyCharm-错误-找不到指定文件python.exe的解决方法
2022-04-20 00:48:10
![](https://img.aspxhome.com/file/2023/3/75293_0s.jpg)