markdown Python分发包到网络,打包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Python分发包到网络,打包相关的知识,希望对你有一定的参考价值。
参考: <<Python Cookbook>>第三版 10.15小节
发布一个python包到网上, 需要以下步骤:
> 按照以下目录层级来组织package:
```bash
projectname/
MAINFEST.in
setup.py
README.txt
Doc/
documentation.txt
projectname/
__init__.py
foo.py
utils/
__init__.py
spam.py
examples/
helloworld.py
...
```
> setup.py
注意:
- 其中packages要列出所有的source packages, 也就是所有的含有\_\_init\_\_.py文件的文件夹(子文件夹也需要列出来).
- 最外层的文件夹通常仅仅是用来打包的, 源码的根文件夹往往要放在下一层级, 因为还有其他非源码的文件要放, 比如README.txt, setup.py等.
```python
# setup.py
from distutils.core import setup
setup(
name='projectname',
version='1.0',
author='Your Name',
author_email='you@youraddress.com',
url='http://www.you.com/projectname',
packages=['projectname', 'projectname.utils'],
)
```
> MANIFEST.in
将非源码的文件(夹)列在此文件中
```bash
# MANIFEST.in
include *.txt
recursive-include examples *
recursive-include Doc *
```
> 运行打包指令
```bash
% bash python3 setup.py sdist
```
会打成一个`projectname-1.0.zip`或者是`projectname-1.0.tar.gz`, 然后就可以分发给别人或者上传到[PyPI](https://pypi.org/)上了.
注意: 以上打包方式仅适用于纯python实现的代码, 如果代码中有C扩展, 需要进行额外的操作, 本篇不涉及.
一个快速的打包方式就是将依赖导入到requirements.txt文件中, 然后在目的地安装:
你可以用pip导出你的dependency:
```bash
$ pip freeze > requirements.txt # or use pipreqs
```
然后在通过以下命令安装dependency:
```bash
$ pip install -r requirements.txt
```
参考链接:
- [python 如何连同依赖打包发布以及python的构建工具](https://www.zhihu.com/question/21639330)
以上是关于markdown Python分发包到网络,打包的主要内容,如果未能解决你的问题,请参考以下文章
Python打包分发工具setuptools
使用 twine 上传自己的 python 包到 pypi
Python重新打包现有的分发包
Python打包分发工具setuptools
如何打包和分发 python 程序(.py 源代码),以便其他开发人员可以轻松安装所有需要的依赖项?
全面学习 Python 包:包的构建与分发