pyscaffold建立项目管理
pyscaffold
新建一个python项目的管理软件。一个命令就可以putup my_project即可。
PyScaffold helps you to easily setup a new Python project.
安装
三种方法:
pipinstallpyscaffold pipinstallpyscaffold[all]condainstall-c conda-forge pyscaffold我试过第一种,发现有时候会遇到bug,your setuptools version is too old (<12).
但是pip install -U setuptools无法解决问题。这与pyscaffold的版本有关。为了方便的解决这些。我直接利用了第三种方法。毕竟这地方不是我们的重点。
最后的requirement
annoy1.15.2bert-serving-client1.9.1certifi2019.6.16faiss1.5.3pip19.2.2pyarrow0.14.1PyScaffold3.2.1setuptools41.2.0six1.12.0wheel0.33.4新建python项目
putup my_project这时候就有了模板话的python项目,有文档、作者、代码、测试等。
如下:
AUTHORS.rst LICENSE.txt docs setup.cfg src CHANGELOG.rst README.rst requirements.txt setup.py tests为什么需要模板,是因为简单快捷,而且这些部分一般情况下都需要,是为了更好的把这个项目标准化。
其他操作
python setup.py docs 文档化
python setup.py test (python setup.py test --addopts -h) 测试py.test里的东西
后面pip install -r requirement.txt则会在其他项目安装。
为了简单,只要修改setup.py就可以了
打包
Source Distribution Package(源码打包)
This will create a source “tarball” package.
python setup.py sdistBinary Distribution Package(二进制打包)
This will create a binary architecture-dependent package.
python setup.py bdist个人喜好只改setup.py
VERSION="1.0.0"setup(name='xx1',version=VERSION,description='xx2',url="xx3",long_description="test for pyscaffold",author='xx4',author_email='xx5',install_requires=["six","pyscaffold","sphinx","boto3","pandas","modelhub"])如何发布到仓库repository
twine upload -r pypi-xx dist/your_project-1.0.1.tar.gz总结
- pyscaffold模板化利于管理
- python setup.py test/install/sdist/bdist等来对源码测试、安装到本地、打源码包,打发布包
- 打包的时候需要meta信息,为了更简单,可以直接在setup.py里的setup里直接写。简单。
- 然后发布到远程仓库
参考文献
https://pypi.org/project/PyScaffold/
https://lingxiankong.github.io/2013-12-23-python-setup.html
https://github.com/pyscaffold/pyscaffold/
https://pypi.org/project/twine/