我想创建一个python zipfile并执行它。
首先,我要创建以下目录和源文件:
目录树
pkgtest/
└── pkga
├── __init__.py
└── __main__.py__main__.py
print("SADASD")__init__.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它起作用了。
但是,根据本教程的说法,使用普通的zip文件就足够了。这是正确的吗?
发布于 2020-06-03 13:49:40
__main__.py文件必须位于zip文件的顶层dir中,请参见这里
(例如,包含顶级
__main__.py文件的top文件)。
你必须跑
python -m zipfile -c ../pkga.zip .在pkga目录中。运行python -m zipfile -c pkga.zip pkga时,您可以创建一个包含其中文件的目录pkga的zip文件,但是python在zip文件的顶层dir中查找__main__.py。
发布于 2020-06-03 13:41:23
https://stackoverflow.com/questions/62173933
复制相似问题