10.7 �行目录或压缩文件¶

问题¶

您有一个已�长为包�多个文件的应用,它已远��是一个简�的脚本,你想�用户�供一些简�的方法�行这个程�。

解决方案¶

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

myapplication/
    spam.py
    bar.py
    grok.py
    __main__.py

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

bash % python3 myapplication

解释器将执行__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 ...

讨论¶

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

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

#!/usr/bin/env python3 /usr/local/bin/myapp.zip