本文介绍: 当你想打包一个目录时,需要现在目录中放一个_init_.py,该文件叫包初始化文件文件可以为空,也可以放一些代码为什么这样做?如果你想import任何有_init_.py文件目录下的任何python代码python都会先运行_init_.py再运行代码文件添加_init_.py还有一个好处,就是在写python代码的时候不用担心python解释器找不到这个目录,不用担心你importpycharm给你的包划红线了。

python代码包的用途

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

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

为什么这样做?
如果你想import任何有_init_.py文件目录下的任何python代码python都会先运行_init_.py,再运行代码文件
添加_init_.py还有一个好处,就是在写python代码的时候不用担心python解释器找不到这个目录,不用担心你importpycharm给你的包划红线了。
以前写代码是,如果你想导入其他项目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文件,比如htmljs等,这时候就要靠include_package_datapackage_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文件中。

生成whltar.gz文件包

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

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

原文地址:https://blog.csdn.net/xuezhangjun0121/article/details/128907404

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_14295.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注