码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python文件打包分发方法


    python文件打包分发方法

    python文件打包发布方法,适用于将开发的python文件进行模块化,并分发。可以安装在本地的python环境中。


    文章目录

    • python文件打包分发方法
    • 前言
    • 一、文件组织
    • 二、setuptools分发操作
    • 三、注意事项


    前言

    我有三个python文件,A.py和B.py和C.py
    其中A.py依赖导入B.py和C.py
    将这三个文件打包成模块,支持后续用户直接导入使用


    一、文件组织

    创建一个目录(包目录),用于存放这三个文件。目录结构如下:

    my_module/
        __init__.py
        A.py
        B.py
        C.py
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 在my_module目录下创建一个空的 init.py 文件。这个文件用于指示Python解释器将my_module目录识别为一个包。

    2. 将A.py、B.py和C.py文件分别放入my_module目录中。

    3. 在A.py 文件中,可以导入 B.py 和 C.py,就像在常规的Python脚本中一样。例如:

    # A.py
    from . import B
    from . import C
    
    • 1
    • 2
    • 3

    二、setuptools分发操作

    1. 确保项目目录结构如下:
    parent_file/
        my_module/
            __init__.py
            A.py
            B.py
            C.py
        setup.py
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 在setup.py文件中,定义的项目元数据和包的信息。一个简单的setup.py可能如下所示:
    from setuptools import setup, find_packages
    
    setup(
        name="my_module",
        version="0.1",
        packages=find_packages(),
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这个示例中,name 是包的名称,version 是包的版本,packages 使用 find_packages() 来自动查找和包含Python包。

    1. 在项目根目录下,使用命令行工具进入该目录,然后运行以下命令来构建一个源分发包(sdist):
    python setup.py sdist
    
    • 1
    1. 这个时候会生成dist文件夹,进入这个文件夹
    pip install /path/to/my_module/dist/my_module-0.1.tar.gz
    
    • 1

    三、注意事项

    在处理依赖关系时,不同情境下,B.py和C.py的导入方式是不一样的。
    在开发时候,导入方式为:

    import B
    import C
    
    • 1
    • 2

    而分发的时候,为:

    from . import B
    from . import C
    
    • 1
    • 2
  • 相关阅读:
    文件上传下载
    文心一言 VS 讯飞星火 VS chatgpt (92)-- 算法导论8.3 5题
    NX二次开发-通过获取窗口句柄方式来设置类型过滤器EnumChildWindows
    社区论坛小程序源码系统,功能齐全,页面简洁,前端+后端+完整部署教程
    Docker 入门流程
    融云移动办公协同平台,助力政企数智化转型升级
    VMware vCenter Server 6.7 安装
    Linux信号
    11.1 读图的思路和步骤
    【记录】Discuz!论坛防灌水防注册机,清理垃圾会员
  • 原文地址:https://blog.csdn.net/qq_48081868/article/details/134067217
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号