为了让自己的项目能够很好的复用和管理,可以打包成pip来供自己或别人调用
这里提供简单易懂的打包成pip的方法
项目结构
先创建一个python项目文件夹myUtil_2
python项目必须有__init__.py文件(可为空),否则在打包pip时识别不出来
def init():
print("这是__init__")
然后随便创建一个demo.py文件用于测试
def test():
print("测试pip导入成功")
之后是关键文件setup.py
from distutils.core import setup
import setuptools
setup(name='myUtil-1', # 打包后的包文件名(注意:这里是pip list中显示的名字 并不是import的名字)
version='0.1.0', # pip中显示的版本号
description='xxx', # 项目描述
author='xxx', # 作者名字
author_email='xxxxxx@xxxxxxxx.xxx', # 作者邮箱
url='http://xxxxx', # 作者项目地址
packages=setuptools.find_packages() # 打包的包真正要import的包 需要创建文件夹里面必须有__init__.py(可为空)
)
以PyCharm为例 打开Terminal 输入下面命令,开始生成tar.gz包
python setup.py sdist
执行上述命令后会在dist中生成一个tar.gz包(可以发给别人安装)
然后安装到pip列表中
pip install dist/myUtil-1-0.1.0.tar.gz
pip查看,可以看到以setup中name属性
pip list
然后可以在项目中引入了
from myUtil_2 import demo
import myUtil_2
myUtil_2.init()
demo.test()
下面提供一个快速开发版(只需要执行一个文件即可完成打包)
目录结构
setup_conf.py
name = 'myUtil-1' # 打包后的包文件名(注意:这里是pip list中显示的名字 并不是import的名字)
version = '0.2.0' # pip中显示的版本号
description = 'xxx' # 项目描述
author = 'xxx' # 作者名字
author_email = 'xxxxxx@xxxxxxxx.xxx' # 作者邮箱
url = 'http://xxxxx' # 作者项目地址
setup.py
from distutils.core import setup
import setuptools
from setup_conf import *
setup(name=name, # 打包后的包文件名(注意:这里是pip list中显示的名字 并不是import的名字)
version=version, # pip中显示的版本号
description=description, # 项目描述
author=author, # 作者名字
author_email=author_email, # 作者邮箱
url=url, # 作者项目地址
packages=setuptools.find_packages() # 打包的包真正要import的包 需要创建文件夹里面必须有__init__.py(可为空)
)
Project2PIP.py
import os
from setup_conf import *
if __name__ == '__main__':
tar_gz_name = f"{name}-{version}.tar.gz"
print("开始打包", tar_gz_name)
os.system("python setup.py sdist")
print("开始安装", tar_gz_name)
os.system(f"pip install dist/{tar_gz_name}")
print("安装结果")
os.system(f'pip list | findstr "{name}"')