python中的setup笔记
1.setup打包python
image.pngdata.dat随便写点内容
load_data.py:
import os
def load_data():
datafile='data.dat'
#必须这样写,如果直接写data.dat,到调用的时候,它回去你调用的地方找这个data.dat
datafile=os.path.join(os.path.dirname(os.path.abspath(__file__)),datafile)
with open(datafile) as fp:
data=fp.read()
return data
mytool.py
from load_data import load_data
def mytool():
print('mytool')
if __name__=='__main__':
mytool()
print(load_data())
set_up.py
from distutils.core import setup
setup(name='mytool',
version='1.0',
py_modules=['mytool','load_data'],
)
命令行执行python38 setup.py build
python38 setup.py install win10需要管理员权限
命令行调用:这里会报错,因为我们没有吧data文件复制过来
ide调用
from mytool import mytool,load_data
mytool()
2.打包src目录,src需要有init文件
image.png修改setup.py文件
from distutils.core import setup
setup(name='mytool',
version='1.0',
#py_modules=['mytool'],
packages=['src'],
)
打包后,将生成src目录
如果我们需要自己命名自己的package名称,可以指定package_dir
from distutils.core import setup
setup(name='mytool',
version='1.0',
#py_modules=['mytool'],
packages=['mytools2'],
package_dir={'mytools2': 'src'},
package_data={'mytools2': ['data/data.dat']},
)
执行install后,会打包到mytools2目录下
调用:
python38 -m mytools2.mytool
image.png
ide调用
from mytools2.mytool import mytool,load_data
data=load_data.load_data()
print(data)
datafiles选项会把相对于setup。py文件路径的文件复制到sys.prefix,即python的安装目录
data_files=[('my_conf', ['123.dat'])], #sys.prefix python安装的根目录
image.png
python3 setup.py sdist 源码发布
会生成tar.gz包
安装:解压后:python setup.py install
或直接用pip安装
pip install **.tar.gz
python3 setup.py bdist
会生成二进制 zip包
生成64位exe安装文件
python setup.py build --plat-name=win-amd64 bdist_wininst