首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以zip格式执行python包

如何以zip格式执行python包
EN

Stack Overflow用户
提问于 2020-06-03 13:24:13
回答 2查看 1.6K关注 0票数 1

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

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

目录树

代码语言:javascript
复制
pkgtest/
└── pkga
    ├── __init__.py
    └── __main__.py

__main__.py

代码语言:javascript
复制
print("SADASD")

__init__.py:空

在这一点上,我可以:

代码语言:javascript
复制
python pkga

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

代码语言:javascript
复制
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'

,我错过了什么?

编辑

这样做:

代码语言:javascript
复制
python3 -m zipapp pkga

然后

代码语言:javascript
复制
python3 pkga.pyz

它起作用了。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-03 13:49:40

__main__.py文件必须位于zip文件的顶层dir中,请参见这里

(例如,包含顶级__main__.py文件的top文件)。

你必须跑

代码语言:javascript
复制
python -m zipfile -c ../pkga.zip .

在pkga目录中。运行python -m zipfile -c pkga.zip pkga时,您可以创建一个包含其中文件的目录pkga的zip文件,但是python在zip文件的顶层dir中查找__main__.py

票数 3
EN

Stack Overflow用户

发布于 2020-06-03 13:41:23

使用zipapp模块创建ZIP存档。

代码语言:javascript
复制
python -m zipapp pkga
python pkga.pyz

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62173933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档