Python Packaging Tutorial by Tom Ge
Project description
Geometry
geometry-python-packaging-tomge 是一个几何简易工具包。该项目是一个教学性质的软件包,旨在全面展示如何构建 Python 软件包的过程。
以下是构建流程的五个步骤:
第一步:模块化
构建软件包的文件结构,并编写 pyproject.toml和 README.md 文件。
- UPLOAD_TO_PYPI/
- -- src/
- -- geometry-python-packaging-tomge/
- -- draw/
- -- plane/
- -- solid/
- -- geometry-python-packaging-tomge/
- -- tests/
- -- pyproject.toml
- -- README.md
- -- src/
第二步:创建本地虚拟环境
创建虚拟环境,确保开发环境独立无干扰。env为虚拟环境名,可任意修改。
1.创建:
% python3 -m venv env
2.激活:
% source env/bin/activate
第三步:本地安装软件包
在本地安装软件包,并测试软件包的功能,确保一切运作正常。
% pip install .
第四步:编译和上传软件包至 TestPyPI
- 包编译:
% python3 -m pip install --upgrade pip
% python3 -m pip install --upgrade build
% python3 -m build
- 上传包:
% python3 -m pip install --upgrade twine
% python3 -m twine upload --repository testpypi dist/*
- 下载安装包:
% python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps geometry-python-packaging-tomge (此处填写以自己的包名)
如需通过pip进行本地安装,建议添加‘--no-deps’参数以避免安装依赖项。
--index-url: 标志来指定 TestPyPI 而非正式的 PyPI。 --no-deps: 因为 TestPyPI 并不包含与正式 PyPI 完全相同的软件包,尝试安装依赖项可能会导致安装失败或安装意料之外的内容。在使用 TestPyPI 时避免安装依赖关系是一种经验的做法。在本案例中避免安装 numpy, matplotlib。
第五步:软件包上传至 PyPI
将软件包正式发布到PyPI, 并进行下载安装和测试,以验证功能的完整性。
- 上传包:
% twine upload dist/*
- 下载安装包:
% pip install geometry-python-packaging-tomge
参考资料
版本说明
We use SemVer for versioning. For the versions available, see the tags on this repository.
作者
- Tom Ge - Data scientist - github profile
License
This project is licensed under the MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for geometry-packagiing-tomge-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd024104373c37ef099ca9c95fab41ae29946a6f337f3462c1e2783a53b5af20 |
|
MD5 | 59a4286d3d0068fafa1457c5e81ebd1f |
|
BLAKE2b-256 | 9f4e72b3fd58dc1d7fecde9b8a39437986dcb986c40b53ddcf853cef7ed8f555 |
Hashes for geometry_packagiing_tomge-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed2b7b7736fee71b887348cd55699adaf89d9504e2c0baa8144e93467812fa69 |
|
MD5 | 2d7dca50fecc24013f6b000720904c31 |
|
BLAKE2b-256 | 2bfe491c5c539996ded22bd429ce74f97a038616e55fbacd41f656f8953f0e9a |