From e66ba90a2587509c1ac599ab76c733906c7618ad Mon Sep 17 00:00:00 2001 From: Chen Zhengda <73685931+chenzhengda@users.noreply.github.com> Date: Mon, 6 May 2024 06:00:31 +0000 Subject: [PATCH] update README.md --- .bumpversion.cfg | 11 +++++++ .gitattributes | 11 +++++++ .gitignore | 4 +++ CONTRIBUTING.md | 63 ++++++++++++++++++++-------------------- CONTRIBUTING_EN.md | 45 +++++++++++++++++++++++++++++ MANIFEST.in | 17 +++++++++++ Makefile | 52 +++++++++++++++++++-------------- README.md | 48 ++++++++++++++++++++++++++----- README_EN.md | 9 ++++++ pyproject.toml | 71 ++++++++++++++++++++++++++++------------------ setup.py | 5 ++++ 11 files changed, 247 insertions(+), 89 deletions(-) create mode 100644 CONTRIBUTING_EN.md create mode 100644 README_EN.md diff --git a/.bumpversion.cfg b/.bumpversion.cfg index b21fbf0..f63302f 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,3 +1,14 @@ +# * 这段代码是用于配置 bumpversion 工具的配置文件。其中: +# [bumpversion] 部分指定了版本升级的一般设置。 +# current_version 指定了当前项目的版本号。 +# commit 和 tag 都设置为 True,表示在升级版本时,bumpversion 应该在版本控制中创建一个提交和标签。 +# [bumpversion:file:python_template/__init__.py] 部分指定了要在哪个文件中进行搜索和替换。 +# search 指定了要在文件中搜索的模式。 +# replace 指定了要用来替换搜索到的模式的内容。 +# [bumpversion:file:pyproject.toml] 部分类似地指定了要在哪个文件中进行搜索和替换。 + + +# 当使用这个配置运行 bumpversion 时,它将根据提供的模式更新指定文件中的版本号。 [bumpversion] current_version = 0.1.0 commit = True diff --git a/.gitattributes b/.gitattributes index 092719d..86159c9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,14 @@ +# * 这个代码片段展示了一个.gitattributes文件的内容。.gitattributes文件用于指定特定文件或路径的属性,比如文本处理方式和换行符类型。 + +# 在这个例子中,文件指定了以下规则: +# examples/* linguist-documentation:将examples目录下的所有文件标记为linguist-documentation,这可能会影响GitHub对这些文件的语言识别。 +# docs/* linguist-documentation:将docs目录下的所有文件标记为linguist-documentation。 +# *.ipynb linguist-documentation:将所有.ipynb文件标记为linguist-documentation。 +# Makefile linguist-documentation:将Makefile文件标记为linguist-documentation。 + + +# 最后一行* text=auto eol=lf指定了默认规则,即将所有文件视为文本文件(text=auto),并使用LF作为换行符(eol=lf)。 + examples/* linguist-documentation docs/* linguist-documentation *.ipynb linguist-documentation diff --git a/.gitignore b/.gitignore index 0fc231f..20bbad2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# 这是一个.gitignore文件的示例,用于指定Git版本控制系统忽略的文件和目录。 +# 在这个示例中,文件中列出了一些常见的不需要纳入版本控制的文件和目录,比如Python字节码文件、构建产物、日志文件、临时文件、缓存文件、数据库文件、虚拟环境、IDE和工具生成的文件等。 +# 通过这个文件,可以确保这些文件和目录不会被意外提交到版本库中。 + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 28c29cb..98ceb83 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,45 +1,42 @@ -# Contributing +# 贡献 -If you want to contribute to this repository here are some helpful guidelines. +如果您想要为这个仓库做贡献,以下是一些有用的指南。 -## Reporting bugs, feature requests, etc. +简体中文 | [English](CONTRIBUTING_EN.md) -To report bugs, request new features or similar, please open an issue on the Github -repository. +## 报告 bug、提出新功能等 -A good bug report includes: +要报告 bug、请求新功能或类似的事情,请在 Github 仓库上开启一个 issue。 -- Expected behavior -- Actual behavior -- Steps to reproduce (preferably as minimal as possible) -- Possibly any output from the browser console (typically available via Ctrl + Shift + J or via F12). +一个好的 bug 报告包括: -## Minor changes, typos etc. +- 期望的行为 +- 实际的行为 +- 重现步骤(最好尽可能简洁) +- 可能的浏览器控制台输出(通常可以通过 Ctrl + Shift + J 或 F12 获得) -Minor changes can be contributed by navigating to the relevant files on the Github repository, -and clicking the "edit file" icon. By following the instructions on the page you should be able to -create a pull-request proposing your changes. A repository maintainer will then review your changes, -and either merge them, propose some modifications to your changes, or reject them (with a reason for -the rejection). +## 小改动、错别字等 -## Setting up a development environment +可以通过导航到 Github 仓库上相关文件,并点击“编辑文件”图标来贡献小改动。按照页面上的说明,您应该能够创建一个拉取请求(pull-request)来提议您的更改。 +仓库维护者将会审查您的更改,并且要么合并它们,要么提出一些修改意见,或者拒绝它们(并附上拒绝的原因)。 -If you want to help resolve an issue by making some changes that are larger than that covered by the above paragraph, it is recommended that you: +## 设置开发环境 -- Fork the repository on Github -- Clone your fork to your computer -- Run the following commands inside the cloned repository: - - `make develop` - This will install the package in development - mode -- Validate the install by running the tests: - - `make lint` - This command will run any static analysis tools/lints - - `make test` - This command will run the unit tests - - `make check` - This command will run any other checks +如果您想通过进行一些大于上述段落所涵盖的更改来帮助解决问题,建议您: -Once you have such a development setup, you should: +- 在 Github 上 fork 该仓库 +- 将您的 fork 克隆到您的计算机上 +- 在克隆的仓库内运行以下命令: + - `make develop` - 这将以开发模式安装该包 +- 通过运行测试来验证安装: + - `make lint` - 这个命令将运行任何静态分析工具/检查 + - `make test` - 这个命令将运行单元测试 + - `make check` - 这个命令将运行任何其他检查 -- Make the changes you consider necessary -- Run the tests to ensure that your changes does not break anything -- If you add new code, preferably write one or more tests for checking that your code works as expected. -- Commit your changes and publish the branch to your github repo. -- Open a pull-request (PR) back to the main repo on Github. +一旦您拥有这样的开发设置,您应该: + +- 进行您认为必要的更改 +- 运行测试以确保您的更改不会破坏任何东西 +- 如果您添加了新代码,最好编写一个或多个测试来检查您的代码是否按预期工作 +- 提交您的更改并将分支发布到您的 Github 仓库 +- 在 Github 上向主仓库开启一个拉取请求(PR)。 \ No newline at end of file diff --git a/CONTRIBUTING_EN.md b/CONTRIBUTING_EN.md new file mode 100644 index 0000000..28c29cb --- /dev/null +++ b/CONTRIBUTING_EN.md @@ -0,0 +1,45 @@ +# Contributing + +If you want to contribute to this repository here are some helpful guidelines. + +## Reporting bugs, feature requests, etc. + +To report bugs, request new features or similar, please open an issue on the Github +repository. + +A good bug report includes: + +- Expected behavior +- Actual behavior +- Steps to reproduce (preferably as minimal as possible) +- Possibly any output from the browser console (typically available via Ctrl + Shift + J or via F12). + +## Minor changes, typos etc. + +Minor changes can be contributed by navigating to the relevant files on the Github repository, +and clicking the "edit file" icon. By following the instructions on the page you should be able to +create a pull-request proposing your changes. A repository maintainer will then review your changes, +and either merge them, propose some modifications to your changes, or reject them (with a reason for +the rejection). + +## Setting up a development environment + +If you want to help resolve an issue by making some changes that are larger than that covered by the above paragraph, it is recommended that you: + +- Fork the repository on Github +- Clone your fork to your computer +- Run the following commands inside the cloned repository: + - `make develop` - This will install the package in development + mode +- Validate the install by running the tests: + - `make lint` - This command will run any static analysis tools/lints + - `make test` - This command will run the unit tests + - `make check` - This command will run any other checks + +Once you have such a development setup, you should: + +- Make the changes you consider necessary +- Run the tests to ensure that your changes does not break anything +- If you add new code, preferably write one or more tests for checking that your code works as expected. +- Commit your changes and publish the branch to your github repo. +- Open a pull-request (PR) back to the main repo on Github. diff --git a/MANIFEST.in b/MANIFEST.in index eba0f3f..36acdac 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,23 @@ +# MANIFEST.in 文件的作用是告诉 Python 的打包工具(如 setuptools)在构建分发包时应该包含哪些文件,以及应该排除哪些文件。通常,这个文件会列出一系列的包含(include)和排除(exclude)规则,告诉打包工具如何处理项目中的各种文件。 + +# 具体来说,MANIFEST.in 文件的作用包括: + +# 1. **指定包含的文件和目录**:通过指定 `include` 和 `graft` 指令,可以告诉打包工具应该包含哪些文件和目录。 + +# 2. **指定排除的文件和目录**:通过指定 `exclude` 和 `prune` 指令,可以告诉打包工具应该排除哪些文件和目录,不包含在分发包中。 + +# 3. **全局排除规则**:可以使用 `global-exclude` 指令指定一些全局的排除规则,告诉打包工具哪些文件应该在所有目录中排除。 + +# 4. **指定特定文件的包含和排除**:可以使用具体的文件路径或者通配符来指定特定文件的包含和排除规则。 + +# 5. **指定额外的元数据文件**:除了 setup.py 文件中的元数据,还可以通过 MANIFEST.in 文件指定一些额外的元数据文件,如 LICENSE、README 等。 + +总的来说,MANIFEST.in 文件提供了一种灵活的方式,让开发者能够控制分发包中包含哪些文件,从而确保分发包的内容符合预期。 graft python_template include LICENSE include README.md +include README_EN.md prune docs prune .vscode @@ -12,6 +28,7 @@ prune .ruff_cache prune .mypy_cache exclude CONTRIBUTING.md +exclude CONTRIBUTING_EN.md exclude .bumpversion.cfg exclude pyproject.toml exclude Makefile diff --git a/Makefile b/Makefile index 5775cda..d83e20e 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,23 @@ +# * 这是一个Makefile文件,用于定义各种任务和命令。文件中包含了一些常见的任务,例如构建(build)、代码检查(lints)、测试(tests)、文档生成(docs)、版本管理(version)、分发(dist)和清理(clean)等。 + +# * 每个任务都有一个或多个命令,以及对应的注释说明。例如,develop任务用于安装依赖并构建库,lint任务用于运行Python代码检查工具,test任务用于运行Python测试等。 + +# * 文件还定义了一些伪目标(.PHONY),以及一些带有别名的任务,这些别名可以简化用户在命令行中输入的操作。 + +# * 最后,文件还定义了一个默认目标(.DEFAULT_GOAL),用于在没有指定具体任务时显示帮助信息。帮助信息通过解析Makefile文件中的注释来生成,以便用户了解可以执行的任务及其说明。 + ######### # BUILD # ######### .PHONY: develop build install -develop: ## install dependencies and build library +develop: ## install dependencies and build library / 安装依赖并构建ython库 python -m pip install -e .[develop] -build: ## build the python library +build: ## build the python library / 构建Python库 python setup.py build build_ext --inplace -install: ## install library +install: ## install library / 安装ython库 python -m pip install . ######### @@ -17,14 +25,14 @@ install: ## install library ######### .PHONY: lint lints fix format -lint: ## run python linter with ruff +lint: ## run python linter with ruff / 使用ruff运行Python代码检查工具 python -m isort python_template setup.py --check python -m ruff python_template setup.py # Alias lints: lint -fix: ## fix python formatting with ruff +fix: ## fix python formatting with ruff / 使用ruff修复Python格式 python -m isort python_template setup.py python -m ruff format python_template setup.py @@ -36,10 +44,10 @@ format: fix ################ .PHONY: check-manifest semgrep checks check annotate -check-manifest: ## check python sdist manifest with check-manifest +check-manifest: ## check python sdist manifest with check-manifest / 使用check-manifest检查Python sdist清单 check-manifest -v -semgrep: ## check for possible errors with semgrep +semgrep: ## check for possible errors with semgrep / 使用semgrep检查可能的错误 semgrep ci --config auto checks: check-manifest semgrep @@ -47,7 +55,7 @@ checks: check-manifest semgrep # Alias check: checks -annotate: ## run python type annotation checks with mypy +annotate: ## run python type annotation checks with mypy / 使用mypy运行Python类型注解检查 python -m mypy ./python_template ######### @@ -55,10 +63,10 @@ annotate: ## run python type annotation checks with mypy ######### .PHONY: test coverage tests -test: ## run python tests +test: ## run python tests / 运行Python测试 python -m pytest -v python_template/tests --junitxml=junit.xml -coverage: ## run tests and collect test coverage +coverage: ## run tests and collect test coverage / 运行测试并收集测试覆盖率 python -m pytest -v python_template/tests --junitxml=junit.xml --cov=python_template --cov-branch --cov-fail-under=75 --cov-report term-missing --cov-report xml # Alias @@ -69,10 +77,10 @@ tests: test ######## .PHONY: docs show-docs -docs: ## build html documentation +docs: ## build html documentation / 构建HTML文档 make -C ./docs html -show-docs: ## show docs with running webserver +show-docs: ## show docs with running webserver / 通过运行web服务器显示文档 cd ./docs/_build/html/ && PYTHONBUFFERED=1 python -m http.server | sec -u "s/0\.0\.0\.0/$$(hostname)/g" ########### @@ -80,16 +88,16 @@ show-docs: ## show docs with running webserver ########### .PHONY: show-version patch minor major -show-version: ## show current library version +show-version: ## show current library version / 显示当前库版本 bump2version --dry-run --allow-dirty setup.py --list | grep current | awk -F= '{print $2}' -patch: ## bump a patch version +patch: ## bump a patch version / 增加一个补丁版本 bump2version patch -minor: ## bump a minor version +minor: ## bump a minor version / 增加一个次要版本 bump2version minor -major: ## bump a major version +major: ## bump a major version / 增加一个主要版本 bump2version major ######## @@ -97,25 +105,25 @@ major: ## bump a major version ######## .PHONY: dist dist-build dist-sdist dist-local-wheel publish -dist-build: # build python dists +dist-build: # build python dists / 构建Python分发包 python -m build -w -s -dist-check: ## run python dist checker with twine +dist-check: ## run python dist checker with twine / 使用twine运行Python分发检查 python -m twine check dist/* -dist: clean build dist-build dist-check ## build all dists +dist: clean build dist-build dist-check ## build all dists / 清理、构建和运行分发检查的任务 -publish: dist # publish python assets +publish: dist # publish python assets / 发布Python资源 ######### # CLEAN # ######### .PHONY: deep-clean clean -deep-clean: ## clean everything from the repository +deep-clean: ## clean everything from the repository / 清理仓库中的所有内容 git clean -fdx -clean: ## clean the repository +clean: ## clean the repository / 清理仓库 rm -rf .coverage coverage cover htmlcov logs build dist *.egg-info ############################################################################################ diff --git a/README.md b/README.md index 53f4f77..2492a31 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,43 @@ -# Python Project Template +# Python 项目模板 -A pure-python project template +一个纯粹的 Python 项目模板 -[![Build Status](https://github.com/python-project-templates/python/workflows/Build%20Status/badge.svg?branch=main)](https://github.com/python-project-templates/python/actions?query=workflow%3A%22Build+Status%22) -[![codecov](https://codecov.io/gh/python-project-templates/python/branch/main/graph/badge.svg)](https://codecov.io/gh/python-project-templates/python) -[![License](https://img.shields.io/github/license/python-project-templates/python)](https://github.com/python-project-templates/python) -[![PyPI](https://img.shields.io/pypi/v/python_template.svg)](https://pypi.python.org/pypi/python_template) -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/python-project-templates/python/main?urlpath=lab) +[![构建状态](https://github.com/chenzhengda/python-project-templates/workflows/Build%20Status/badge.svg?branch=main)](https://github.com/chenzhengda/python-project-templates/actions?query=workflow%3A%22Build+Status%22) +[![codecov](https://codecov.io/gh/python-project-templates/python/branch/main/graph/badge.svg)](https://codecov.io/gh/python-project-templates/python) +[![许可证](https://img.shields.io/github/license/python-project-templates/python)](https://github.com/chenzhengda/python-project-templates) +[![PyPI](https://img.shields.io/pypi/v/python_template.svg)](https://pypi.python.org/pypi/python_template) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/python-project-templates/python/main?urlpath=lab) + +简体中文 | [English](README_EN.md) + +## 项目介绍 +本项目是一个简单的 Python 项目模板,旨在帮助开发者快速开始一个新的 Python 项目。 + +## 安装 +您可以通过 pip 安装本项目: +``` +pip install python_template +``` +## 使用方法 +安装完成后,您可以在 Python 中导入并使用本项目: +```python +import python_template + +# 使用项目的功能 +``` +## 贡献 +我们欢迎任何形式的贡献,包括但不限于: +- 报告 bug +- 提交修复 +- 添加新功能 +- 改进文档 + +如果您有兴趣参与项目,请遵循我们的 [贡献指南](CONTRIBUTING.md)。 + +## 许可证 +本项目遵循 [许可证链接](https://github.com/chenzhengda/python-project-templates)。 + +## 联系方式 +如有任何问题,请通过以下方式联系我们: +- GitHub Issues: [https://github.com/chenzhengda/python-project-templates/issues](https://github.com/chenzhengda/python-project-templates/issues) +``` \ No newline at end of file diff --git a/README_EN.md b/README_EN.md new file mode 100644 index 0000000..53f4f77 --- /dev/null +++ b/README_EN.md @@ -0,0 +1,9 @@ +# Python Project Template + +A pure-python project template + +[![Build Status](https://github.com/python-project-templates/python/workflows/Build%20Status/badge.svg?branch=main)](https://github.com/python-project-templates/python/actions?query=workflow%3A%22Build+Status%22) +[![codecov](https://codecov.io/gh/python-project-templates/python/branch/main/graph/badge.svg)](https://codecov.io/gh/python-project-templates/python) +[![License](https://img.shields.io/github/license/python-project-templates/python)](https://github.com/python-project-templates/python) +[![PyPI](https://img.shields.io/pypi/v/python_template.svg)](https://pypi.python.org/pypi/python_template) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/python-project-templates/python/main?urlpath=lab) diff --git a/pyproject.toml b/pyproject.toml index 7cb1caa..c859738 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,20 +1,32 @@ +# * `pyproject.toml` 文件是用来定义 Python 项目的配置和元数据的文件。它的作用包括但不限于以下几个方面: + +# * 1. **项目构建配置:** 它可以指定项目的构建系统和所需的构建工具。通过定义 `[build-system]` 部分,可以确保项目在构建时使用正确的工具和插件,以及符合相应的构建规范。 + +# * 2. **项目元数据:** `pyproject.toml` 文件中的 `[project]` 部分包含了项目的基本信息,如名称、版本、作者、描述、许可证等。这些元数据对于项目的识别和管理非常重要。 + +# * 3. **依赖管理:** 在 `[dependencies]` 和 `[project.optional-dependencies]` 部分,可以列出项目的依赖项和可选依赖项。这些信息可以被构建系统用来安装项目所需的依赖库,以及在开发或测试过程中可能需要的额外库。 + +# * 4. **工具配置:** `pyproject.toml` 文件还可以包含各种工具的配置选项,如代码格式化工具、静态代码分析工具、测试运行器等。这些配置可以确保项目在开发、测试和部署过程中保持一致的行为和规范。 + +# * 5. **项目链接和文档:** 通过 `[project.urls]` 部分,可以指定项目的代码仓库链接和项目主页链接。这些链接可以帮助其他开发者找到项目的源代码和文档。 + +# 这部分指定了构建系统的配置,指定了项目构建所需的工具和后端。 [build-system] requires = ["setuptools", "wheel"] -build-backend="setuptools.build_meta" +build-backend = "setuptools.build_meta" +# `project` 部分定义了项目的基本信息,包括项目名称、作者、描述、许可证、版本号、所需 Python 版本和关键字。 [project] name = "python_template" -authors = [{name = "Tim Paine", email = "t.paine154@gmail.com"}] -description="A pure-python project template" +authors = [{ name = "Chen Zhengda", email = "chenzhengda713@163.com" }] +description = "A pure-python project template" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" requires-python = ">=3.8" -keywords = [ - "some", - "keywords", -] +keywords = ["some", "keywords"] +# classifiers 部分指定了该项目的分类信息,例如开发状态、支持的 Python 版本等。 classifiers = [ "Development Status :: 3 - Alpha", "Programming Language :: Python :: Implementation :: CPython", @@ -27,14 +39,15 @@ classifiers = [ "Programming Language :: Python :: 3.12", ] -dependencies = [ - "numpy", -] +# dependencies 部分列出了项目的依赖项,这些是项目运行所需的外部库。 +dependencies = ["numpy"] +# project.urls 部分包含了项目相关的网址链接,如仓库链接和主页链接。 [project.urls] Repository = "https://github.com/python-project-templates/python" Homepage = "https://github.com/python-project-templates/python" +# project.optional-dependencies 部分包含了项目开发和测试时可选的依赖项。 [project.optional-dependencies] develop = [ "bump2version", @@ -50,14 +63,14 @@ develop = [ "twine", "wheel", ] -test = [ - "pytest", - "pytest-cov", -] +test = ["pytest", "pytest-cov"] +# tool.check-manifest 部分是关于 check-manifest 工具的配置,该工具用于检查项目清单文件是否包含了所有需要的文件。在这里,ignore 字段为空,表示不忽略任何文件。 [tool.check-manifest] ignore = [] +# tool.isort 部分包含了对 isort 工具的配置,该工具用于对 Python 代码进行 import 排序和格式化。 +# 这里的设置包括了是否合并 import 语句、是否包含逗号、行长度等。default_section 和 sections 指定了分组规则,known_first_party 指定了第一方库的名称。 [tool.isort] combine_as_imports = true include_trailing_comma = true @@ -69,26 +82,30 @@ sections = "FUTURE,THIRDPARTY,FIRSTPARTY,LOCALFOLDER" known_first_party = "python_template" +# tool.mypy 部分包含了对 mypy 工具的配置,该工具用于进行静态类型检查。这里指定了所使用的 Python 版本。 [tool.mypy] python_version = "3.10" -# show_error_codes = true -# follow_imports = "silent" -# strict_optional = true -# warn_redundant_casts = true -# warn_unused_ignores = true -# disallow_any_generics = true -# check_untyped_defs = true -# no_implicit_reexport = true -# warn_unused_configs = true -# disallow_subclassing_any = true -# disallow_incomplete_defs = true -# disallow_untyped_decorators = true -# disallow_untyped_calls = true +show_error_codes = true +follow_imports = "silent" +strict_optional = true +warn_redundant_casts = true +warn_unused_ignores = true +disallow_any_generics = true +check_untyped_defs = true +no_implicit_reexport = true +warn_unused_configs = true +disallow_subclassing_any = true +disallow_incomplete_defs = true +disallow_untyped_decorators = true +disallow_untyped_calls = true +# tool.pytest.ini_options 部分包含了对 pytest 工具的配置,asyncio_mode 设置了异步模式,testpaths 指定了测试文件的路径。 [tool.pytest.ini_options] asyncio_mode = "strict" testpaths = "python_template/tests" +# tool.ruff 部分包含了对 ruff 工具的配置,该工具用于代码风格检查。line-length 指定了每行的最大长度。 +# tool.ruff.per-file-ignores 部分定义了特定文件的忽略规则,这里指定了 __init__.py 文件忽略 F401 错误。 [tool.ruff] line-length = 120 diff --git a/setup.py b/setup.py index 6068493..f2f459c 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,8 @@ +# * 这段代码是使用 Python 的 setuptools 模块来配置和安装 Python 包。 +# * +# * setup() 函数是 setuptools 提供的一个函数,用于设置包的元数据,比如包的名称、版本、作者信息等。 +# * 通常在这个函数中,你会传入一些参数来描述你的包,比如 name(名称)、version(版本)、author(作者)等等。 +# * 这些信息将被用来在安装时展示给用户,也会被上传到 PyPI 等包管理平台。 from setuptools import setup setup()