所需文件及目录规范
注意setup.py文件和MANIFEST.in文件需要放在和你需要打包的目录同一级下,例如我这里需要打包的就是webconsole文件夹(这里webconsole文件夹指的是业务代码文件夹也就是我下图圈出来的文件夹,而不是最外层那个webconsole项目目录文件夹,因为我这里起了相同的文件夹名称,怕各位混淆所以解释一下)。静态文件最好也放在同一级目录下,当然放在webconsole这种业务文件夹内部也是可以的,这个具体看需求情况。
上面那张图大家就先大概明确一下具体是干什么的, 我后面调整了目录结构, 将static文件夹和templates文件夹都放到了业务代码webconsole文件夹下, 这里解释下为什么, 如果像我上图一样的话,最后打包完, pip install 自己的包, 那么static| templates| webconsole 这三个文件夹就会分散在各处,而不是都在一个webconsole包下.
示例演示
这里是指定我需要把这两个文件夹下的文件打包进去, 其中websocket/static/** 指的是业务文件夹websocket下的static文件夹下所有的文件包括子文件夹递归所有文件,
websocket/templates/* 指的是业务文件夹websocket下的, 不递归子文件夹
其中MANIFEST.in文件的语法如下图所示,具体内容参考官方文档
下面的的setup文件没什么好说的,网上有很多解释,稍微贴一点用到的
name:包的名称。
version:包的版本号。
description:包的简要描述。
packages:包含的模块或包的列表。
install_requires:该包所依赖的其他包。
classifiers:该包适用的 Python 版本、支持的操作系统、遵循的协议等信息。
打包命令需要在项目文件夹下,以我的项目为例也就是项目文件webconsole目录下,执行命令
python setup.py sdist bdist_wheel
完成后会在项目文件夹下生成一个dist文件夹,里面包含了两个文件,如图所示
如果改动了上面打包的两个文件,setup.py文件和MANIFEST.in,那么一定一定一定要先删除下图的这个文件夹,不然打包还是用的上一次的配置,这点很坑!!!
—
打包静态文件补充说明
这里再解释一下把静态资源打包进去的问题. 首先明确一下,我需要打包的是我的业务代码文件夹webconsole下的所有东西, 以及最外层的项目文件夹webconsole下的templates和static目录下的所有东西
这里有两个点需要注意下, 第一个是你想打包静态文件首先要能扫描到你的文件夹, 这里setup.py中的packages我写的是find_packages(), 而把webconsole注释掉了, 是因为我想要扫描项目文件夹webconsole下的所有文件夹及内容, 这样保险一点.
如果只想要webconsole业务文件下的文件,其余的不需要, 那就写webconsole就行了
注意这里的 static/** 指的是static文件夹下所有递归的文件都会被放进去, 而templates/* 这个只有一个 * 星号指的是就只放templates下的文件,不递归其内部的文件夹 当然这里的 static 文件夹和 templates文件夹都是指的前面一步 setup.py文件中 packages 这一属性所扫描到的包下的内容文件
第二种方式就是在MANIFEST.in文件中指定, 此时setup.py中的package_data属性就可以注释掉了,只需要在MANIFEST.in文件中写include规则,如下图,(不推荐,虽然可以把静态文件打包到包里,但是pip install的时候,包里面的一部分静态文件install进去了,一部分没有install进去,不知道为啥,有兴趣的可以自行研究)
引用自己打的包
在其他项目中如果想引用自己打的包,那么直接pip install tar包文件路径,就可以把自己的包引入进项目里了。
pip install /path/to/your/package/dist/mypackage-0.1.0.tar.gz
如果pip install报错No module named ‘setuptools.command.build’,那么可能是setup版本过高或过低,我这边是过高了,所以卸载了原来的版本(67.6.0)重新装了个低版本(65.6.3)。
原文地址:https://blog.csdn.net/weixin_44388689/article/details/130391170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22928.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!