Skip to content

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 发布包

  1. 创建账号
  2. 申请api token
  3. 配置 pypi
    poetry config pypi-token.pypi <token>
    
  4. 编译
python -m build
  1. 发布
    poetry publish
    

Comments