Python-包-pyscafford.md

pyscaffold
pyscaffold-github
image

安装并创建项目

1
2
3
4
5
6
7
8
9
10
11
# 安装
pip install pyscaffold
python3 -m pip install --upgrade setuptools wheel # 用于对代码进行打包
python3 -m pip install twine # twine用于将代码上传到pypi


# 创建项目
putup project_demo # 会在项目下,生成整个项目的结构文件。

# -n 项目名, -p 包名, --markdown 使用 md 格式, demo_project 项目路径
putup -n CSSCAnnotationProcess -p CSSCAnnotationProcess --markdown CSSCAnnotationProcess

项目默认使用rst文件,如果使用–markdown,需要提前安装扩展 pip install pyscaffoldext-markdown

编辑项目内容

设置项目文档为markdown格式

  • 安装必须模块

    1
    pip install recommonmark m2r2
  • 在 docs/source/conf.py 文件中编辑或添加以下内容以支持Markdown:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    from recommonmark.parser import CommonMarkParser
    from m2r2 import MdInclude

    source_parsers = {
    '.md': CommonMarkParser,
    }

    source_suffix = ['.rst', '.md']

    extensions = [
    'm2r2',
    # 其他可能已有的扩展...
    ]
  • 将你的Markdown文档放在 docs/source/ 目录下,并将原有的 .rst 文件替换为 .md 格式。

  • 构建Markdown文档为HTML格式:

    1
    make html
  • 就可以在基于 PyScaffold 的项目中使用Markdown编写文档了。虽然创建项目时无法直接指明使用Markdown,但通过上述修改,可以方便地转换到Markdown并保持与 sphinx 文档生成系统的兼容性。

构建Markdown文档为HTML格式:

编辑指定构建项目的工具 pyproject.toml

初次测试阶段,这部分可以不进行调整

1
2
3
4
5
6
7
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
name = "your-package-name"
version = "0.1.0"

编辑说明项目的元信息 setup.cfg

setup.cfg是用于配置 setuptools 的文件。它可以包含一系列选项,用于定义项目的元数据、依赖关系、插件等。这部分信息对应着pypi页面的展示信息,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[metadata]
name = your-package-name
version = 0.1.0
author = Your Name
description = Your package description
url = https://github.com/yourusername/your-package
classifiers =
Programming Language :: Python :: 3
License :: OSI Approved :: MIT License
Operating System :: OS Independent

[options]
packages = find:
install_requires =
requests
numpy

在这个例子中,metadata 部分定义了项目的元数据,而 options 部分定义了项目的选项,包括依赖关系和包的查找方式。

编辑软件包的版本名称

1
2
3
4
5
setup(
name='project_demo', # 此处软件名
version='0.1.0', # 此处为你的版本号
packages=['project_demo'] # 此处包名
)

所有要编辑的代码存储在project_demo/src/project_demo下面,在进行发版时,也会打包该目录下的代码。

默认进行包发布的命令

1
2
3
4
5
6
# 构建项目
# pip install tox
tox -e build

# 发布
tox -e publish -- --repository pypi --verbose

其他项目管理包

hatch
hatch github

-------------本文结束感谢您的阅读-------------