python打包相关
setup.py
早期 python 的测试和打包方式, setup.py 如下
from setuptools import setup
setup(
name='HelloDolly',
version='1.0.1',
packages=['hellodolly'],
url='https://github.com/fmaida/hello-dolly-mkdocs-plugin',
license='MIT',
author='Francesco Maida',
author_email='fran@cesco.it',
description='Hello Dolly is a very simple mkdocs plugin.',
install_requires=['mkdocs'],
# The following rows are important to register your plugin.
# The format is "(plugin name) = (plugin folder):(class name)"
# Without them, mkdocs will not be able to recognize it.
entry_points={
'mkdocs.plugins': [
'hello-dolly = hellodolly:HelloDolly',
]
},
)
现如今对应命令被弃用
Deprecated | Recommendation |
---|---|
python setup.py install | python -m pip install . |
python setup.py develop | python -m pip install --editable . 或 python -m pip install -e . |
python setup.py sdist | python -m build |
python setup.py bdist_wheel | python -m build |
- python setup.py install:
作用:安装包到系统的 Python 环境中。 特点:会将包复制到 Python 的安装目录下的 site-packages 文件夹中。如果目标目录没有写权限,则可能需要使用 sudo 或者以管理员身份运行。
- python setup.py develop:
作用:将当前目录作为包安装,即在不复制文件的情况下让 Python 解释器可以找到并使用这个包。 特点:适合开发过程中频繁修改代码的情况,因为不需要重新安装包即可看到修改后的效果。这通过创建一个指向源代码的链接来实现。
- python setup.py sdist:
作用:生成源码发布包(通常为 .tar.gz 或 .zip 格式)。 特点:打包后可以在其他机器上使用 pip install 包名 来安装此包。
- python setup.py bdist_wheel:
作用:生成 wheel 发布包(.whl 文件)。 特点:与系统相关的二进制包,安装速度比源码包快,可以直接被 Python 解析和使用,无需编译步骤。
- python -m build
作用: 生成源码包和 wheel 包。
需要先安装 build 模块 :pip install build
注意 python setup.py develop 或 python -m pip install -e . 测试完后可以用 pip uninstall <> 来解除连接
pypi 发布包
- 创建账号
- 申请api token
- 配置 pypi
poetry config pypi-token.pypi <token>
- 编译
python -m build
- 发布
poetry publish