ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python将代码打包成whl或者压缩文件使用pip安装

2022-08-19 15:30:08  阅读:179  来源: 互联网

标签:文件 python setup py helloworld 压缩文件 whl 打包


需要条件:安装setuptools,wheel

创建目录

helloworld
init.py
—代码1.py
—代码2.py
setup.py

编辑__init__.py

from helloworld import 代码1,代码2

在helloworld同级下新建setup.py

from setuptools import setup,find_packages
setup(name='helloworld',
      version='0.0.1',
      description='helloworld!',
      author='hello',
      author_email='helloworld@outlook.com',
      requires=['flask'], # 定义依赖哪些模块
      packages=find_packages(), # 系统自动从当前目录开始找包
      # 如果有的包不用打包,则只能指定需要打包的文件
      #packages=['代码1','代码2','__init__']  #指定目录中需要打包的py文件,注意不要.py后缀
      license='apache 3.0')


'''
name : 打包后包的文件名
version : 版本号
author : 作者
author_email : 作者的邮箱
py_modules : 要打包的.py文件
packages: 打包的python文件夹
include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name’: [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
license : 支持的开源协议
description : 对项目简短的一个形容
ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
ext_package : 定义extension的相对路径
requires : 定义依赖哪些模块
provides : 定义可以为哪些模块提供依赖
data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。
'''

如果遇到find_packages找不到,可以尝试升级一下setuptools

pip install --upgrade setuptools

在程序根目录运行打包成whl文件,打包文件:helloworld-0.0.1-py3-none-any.whl

python setup.py bdist_wheel

pip安装whl文件:将whl复制到程序目录,进入存放whl目录运行。(python包默认存放在python包默认路径)

pip install helloworld-0.0.1-py3-none-any.whl

验证是否安装成功,进入python

python

import helloworld

# 成功引入无报错即成功安装

pip打包成压缩文件

python setup.py sdist

安装压缩文件

解压压缩的文件进入setup.py所在目录,运行

python setup.py install

标签:文件,python,setup,py,helloworld,压缩文件,whl,打包
来源: https://www.cnblogs.com/DarkRoger/p/16602129.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有