Weibw's World Weibw's World
首页
  • HTML
  • Python

    • Python基础知识
    • Python CookBook第三版
    • Flask
  • MySQL

    • MySQL基础知识
    • MySQL调优
    • MySQL面试题
算法
  • FineReport
  • Kettle
  • Git
  • 微信公众号文章
  • 优秀博客文章
  • 其他
收藏夹
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Weibw

一个没有梦想的咸鱼
首页
  • HTML
  • Python

    • Python基础知识
    • Python CookBook第三版
    • Flask
  • MySQL

    • MySQL基础知识
    • MySQL调优
    • MySQL面试题
算法
  • FineReport
  • Kettle
  • Git
  • 微信公众号文章
  • 优秀博客文章
  • 其他
收藏夹
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 《Flask》

  • 《Python Cookbook》第三版

    • 第一章:数据结构与算法

    • 第二章:字符串和文本

    • 第三章:数字日期和时间

    • 第四章:迭代器与生成器

    • 第五章:文件与IO

    • 第六章:数据编码和处理

    • 第七章:函数

    • 第八章:类与对象

    • 第九章:元编程

    • 第十章:模块与包

      • 构建一个模块的层级包
      • 控制模块被全部导入的内容
      • 使用相对路径名导入包中子模块
      • 将模块分割成多个文件
      • 利用命名空间导入目录分散的代码
      • 重新加载模块
      • 运行目录或压缩文件
        • 问题
        • 解决方案
        • 讨论
      • 读取位于包中的数据文件
      • 将文件夹加入到syspath
      • 通过字符串名导入模块
      • 通过钩子远程加载模块
      • 导入模块的同时修改模块
      • 安装私有的包
      • 创建新的Python环境
      • 分发包
    • 第十一章:网络与Web编程

    • 第十二章:并发编程

    • 第十三章:脚本编程与系统管理

    • 第十四章:测试、调试和异常

    • 第十五章:C语言扩展

  • Python基础

  • Python
  • 《Python Cookbook》第三版
  • 第十章:模块与包
weibw
2022-01-18

运行目录或压缩文件

# 问题

您有一个已成长为包含多个文件的应用,它已远不再是一个简单的脚本,你想向用户提供一些简单的方法运行这个程序。

# 解决方案

如果你的应用程序已经有多个文件,你可以把你的应用程序放进它自己的目录并添加一个__main__.py文件。 举个例子,你可以像这样创建目录:

myapplication/
    spam.py
    bar.py
    grok.py
    __main__.py
1
2
3
4
5

如果__main__.py存在,你可以简单地在顶级目录运行Python解释器:

bash % python3 myapplication
1

解释器将执行__main__.py文件作为主程序。

如果你将你的代码打包成zip文件,这种技术同样也适用,举个例子:

bash % ls
spam.py bar.py grok.py __main__.py
bash % zip -r myapp.zip *.py
bash % python3 myapp.zip
... output from __main__.py ...
1
2
3
4
5

# 讨论

创建一个目录或zip文件并添加__main__.py文件来将一个更大的Python应用打包是可行的。这和作为标准库被安装到Python库的代码包是有一点区别的。相反,这只是让别人执行的代码包。

由于目录和zip文件与正常文件有一点不同,你可能还需要增加一个shell脚本,使执行更加容易。例如,如果代码文件名为myapp.zip,你可以创建这样一个顶级脚本:

#!/usr/bin/env python3 /usr/local/bin/myapp.zip
1
编辑 (opens new window)
上次更新: 2023/10/13, 17:39:25
重新加载模块
读取位于包中的数据文件

← 重新加载模块 读取位于包中的数据文件→

最近更新
01
牛客网非技术快速入门SQL练习题
03-08
02
其他日常SQL题
03-07
03
用户与权限管理
03-05
更多文章>
Theme by Vdoing | Copyright © 2021-2023 | Weibw | 辽ICP备18015889号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式