所需文件及目录规范
注意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文件没什么好说的,网上有很多解释,稍微贴一点用到的
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就行了
然后我需要将静态文件打包进去,有两种方式:
第一种是在setup.py的package_data中指定
注意这里的 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包文件路径,就可以把自己的包引入进项目里了。文章来源:https://www.toymoban.com/news/detail-858914.html
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://www.toymoban.com/news/detail-858914.html
到了这里,关于setup.py方式打包自己的python代码并可以用pip install安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!