美文网首页
python中的setup笔记

python中的setup笔记

作者: 非鱼2018 | 来源:发表于2021-09-19 12:01 被阅读0次

    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

    相关文章

      网友评论

          本文标题:python中的setup笔记

          本文链接:https://www.haomeiwen.com/subject/jtubiltx.html