如何以zip格式执行python包

2024-09-29 09:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个python zipfile并执行它

我要做的是,首先创建以下目录和源文件:

目录树

pkgtest/
└── pkga
    ├── __init__.py
    └── __main__.py

\uuuu main\uuuuu.py

print("SADASD")

\uuuu init\uuuuu.py:空

在这一点上,我可以做到:

python pkga

它可以工作,但如果我运行以下命令:

python -m zipfile -c pkga.zip pkga   # This generates a pkga.zip file
python pkga.zip

我得到以下错误:

/usr/bin/python: can't find '__main__' module in 'pkga.zip'

我错过了什么?

编辑

这样做:

python3 -m zipapp pkga

然后

python3 pkga.pyz

它起作用了

但是,根据this tutorial的说法,使用普通的zip文件就足够了。这是正确的吗


Tags: py命令目录initmainzippython3print
2条回答

使用^{}模块创建ZIP存档

python -m zipapp pkga
python pkga.pyz

.pyz文件是一个ZIP归档文件

__main__.py文件必须位于zip文件的顶级目录中,请参见here

(e.g. a zipfile containing a top-level __main__.py file).

你必须跑

python -m zipfile -c ../pkga.zip .

从pkga目录中。当您运行python -m zipfile -c pkga.zip pkga时,您将创建一个包含目录pkga的zip文件,其中包含文件,但python会在zip文件的顶级目录中查找__main__.py

相关问题 更多 >