目录

Python程序打包技术学习笔记

相关备忘点

编译

1
python setup.py build

安装

1
python setup.py install

开发模式安装

1
python setup.py develop

在修改代码后可以立即使用,不用重新安装

打一个源码包

1
python setup.py sdist

生成funniest-0.1.tar.gz的源码包

从源码包安装

1
2
tar -zxvf funniest-0.1.tar.gz
python setup.py install

若报错error: can't create or remove files in install directory·,是因为没有权限改安装命令为sudo python3 setup.py install即可

依赖不在PyPI中的包的处理

1
2
3
4
5
setup(
    ...
    dependency_links=['http://github.com/user/repo/tarball/master#egg=package-1.0']
    ...
)

使用setup.py执行单元测试

1
python setup.py test

它会自动查找源码目录包含子目录下的所有测试用例,以test开头的文件

安装命令到系统

有两种方式:

  • 使用单独的脚本文件,如windows下的bat脚本,linux下的shell脚本.在setup添加

    1
    
    scripts=['bin/a.cmd'],
    
  • 使用包中的某个函数,在setup中添加

    1
    2
    3
    
    entry_points = {
    	'console_scripts': ['funniest-joke=funniest.command_line:main'],
    }
    

卸载使用python setup.py install安装 的包

1
pip uninstall funniest -y

发布到pip时打包非py文件(资源文件)

  1. setup()中加入include_package_data=True

  2. 新建文件MANIFEST.in来指定要打包的文件,内容如下

    1
    2
    3
    
    include README.rst
    include docs/*.txt
    include funniest/data.json
    

参考资料

G:\2020\doduo\content\posts\imgs\image-20200505144144242.png