python中的setup笔记

2021-09-19  本文已影响0人  非鱼2018

1.setup打包python

image.png

data.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

上一篇下一篇

猜你喜欢

热点阅读