您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用可执行文件打包Python库

用可执行文件打包Python库

通常,仅当整个项目适合单个模块文件时,才将python软件包作为模块分发。如果您的项目比这更复杂,通常最好将项目构造为带有__init__.py文件的程序包。这是您的项目转换成包后的样子

Project/
|-- README
|-- requirement.txt
|-- setup.py
|-- scripts/
|   |-- driver.py
|-- driver/
|   |-- __init__.py
|   |-- module_1
|   |   |-- __init__.py
|   |   |-- class_1.py
|   |   |-- class_2.py
|   |-- module_2
|   |-- |-- __init__.py
|   |-- |-- class_1.py
|   |-- |-- class_2.py

我将您重命名run.pyscripts/driver.py,以前使用的代码driver.py现在是driver/__init__.py

setup.py应该看起来像这样

from setuptools import setup. find_packages

setup(
    name='driver',
    version='1.0',
    packages=find_packages(),
    scripts=['scripts/driver.py'],
)

这将复制scripts/driver.py到python Scripts目录。我重命名run.pydriver.py因为run它非常通用,并且您希望您的脚本名称是唯一的,因为所有python软件包都共享同一脚本位置。

或者,您可以使用console_scripts入口点。在这种情况下,您将没有单独的scripts/driver.py脚本。取而代之的是,您的包中只有一个函数在这种情况下,您可以将所有代码scripts/driver.py移入driver/command_line.py并将其放入称为的函数main()。然后将您更改setup.py为此

setup(
    name='driver',
    version='1.0',
    packages=find_packages(),
    entry_points = {
        'console_scripts': ['driver=driver.command_line:main'],
    }
)

另外,您应该阅读有关python Packaging的此文档页面。它涵盖了基础知识和许多常见用例。

python 2022/1/1 18:51:30 有532人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶