如何将python代码打包成pip包(可以pip install)

作者:zx 时间:2021-08-23 21:38:10 

python代码包的用途

当你想打包一个目录时,需要现在目录中放一个_init_.py,该文件叫包初始化文件,文件可以为空,也可以放一些代码。举例:

目录hello
        ——  __init__.py
        ——  代码1.py
        ——  代码2.py
        ......

为什么这样做?

如果你想import任何有_init_.py文件的目录下的任何python代码,python都会先运行_init_.py,再运行代码文件。

添加_init_.py还有一个好处,就是在写python代码的时候不用担心python解释器找不到这个目录,不用担心你import时pycharm给你的包划红线了。

以前写代码是,如果你想导入其他项目的python代码,往往会报错,解决方法有三种:

  1. 将别人的代码打成pip包,用pip安装到自己的项目

  2. 在自己的代码中写sys.path.append(“别人代码的目录的路径”)

  3. 在别人代码目录中创建一个__init__py

你也可以在包中添加一些全局变量或者全局类,供包中的其他代码使用,举例:

目录hello
_init_.py

class birds:
    legs = 2
    wings = 2
    head = 1

然后项目中其他任意位置的代码都可以使用init中的包全局变量和类

格式是 from 目录 import 类/变量

from hello import birds

编写setup.py

和_init_.py同级目录中创建一个setup.py,这个就是pip包安装的脚本。

setup.py

from setuptools import setup find_packages
setup(name='birds',
     version='0.0.1',
     description='birds atttributes and functions',
     author='megnet',
     author_email='2290906844@qq.com',
     requires= ['numpy','matplotlib'], # 定义依赖哪些模块
     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文件中。

生成whl和tar.gz文件包

python setup.py bdist_wheel # 打包为whl文件
python setup.py sdist # 打包为tar.gz文件

在和_init_.py同级目录下有一个dist目录,打包好的文件就在里面。

来源:https://blog.csdn.net/xuezhangjun0121/article/details/128907404

标签:python,代码打包,pip包
0
投稿

猜你喜欢

  • Django web自定义通用权限控制实现方法

    2021-07-31 06:21:09
  • [翻译]标记语言和样式手册 Chapter 13 为文字指定样式

    2008-02-15 16:08:00
  • python中json格式处理和字典的关系

    2021-04-10 04:35:12
  • Python 存储字符串时节省空间的方法

    2023-01-18 23:47:47
  • 机器深度学习二分类电影的情感问题

    2022-07-17 06:13:28
  • 10款实用的jQuery图片插件

    2011-01-25 12:28:00
  • 什么是python的必选参数

    2022-12-04 07:28:36
  • Python随机生成8位密码的示例详解

    2023-09-15 21:04:03
  • python 实现12bit灰度图像映射到8bit显示的方法

    2022-11-22 01:37:32
  • Python基础教程之输入输出和运算符

    2021-10-20 13:41:42
  • 在SQL Server数据库开发中的十大问题

    2008-12-18 14:39:00
  • Python Flask框架实现Proteus仿真Arduino与网页数据交互

    2022-01-18 08:43:16
  • tensorflow之如何使用GPU而不是CPU问题

    2023-07-06 13:05:48
  • Django多个app urls配置代码实例

    2021-11-23 10:01:13
  • Python实现实时显示进度条的六种方法

    2022-03-27 02:09:35
  • CSS模块化设计

    2009-01-05 12:10:00
  • python判断一个集合是否包含了另外一个集合中所有项的方法

    2022-01-15 19:08:06
  • Python实现Const详解

    2021-06-24 16:18:40
  • Codeigniter发送邮件的方法

    2023-11-15 05:08:25
  • go语言中排序sort的使用方法示例

    2023-09-01 00:07:22
  • asp之家 网络编程 m.aspxhome.com