2

我知道 python 模块/脚本可以从 zip 存档中运行,如下所述: https ://www.python.org/dev/peps/pep-0441/ 和 https://blogs.gnome.org/jamesh/ 2012/05/21/python-zip-files/

但我的问题是:

是否可以使用密码保护此存档或 .pyz 文件并使用另一个小型 python 脚本运行它,该脚本将发送密码然后运行__main__.py

谢谢!

4

2 回答 2

3

管理导入的代码位于zipimport模块内部。读取档案是在函数中完成的。getdata 它假设文件是​​通过解压缩来解密的(见这里)。

所以不,不幸的是,直接从命令行使用加密文件似乎是不可能的。但是,您可以想象一个使用importlib的包装器(一个示例)。

于 2015-05-04T14:44:41.860 回答
3

我自己也需要这样的东西,所以我做到了。您需要在这里找到的模块:https ://github.com/Dakkaron/ArchiveImporter

然后你可以像这样使用它:

python ArchiveImporter.py [zipfile] [-p=password] [args...]

适用于 Python2 和 Python3。

该模块也可以从代码中使用:

# First import the ArchiveImporter module
import ArchiveImporter
# Then add the password encrypted file you want to import from using addZip(zippath, password)
ArchiveImporter.addZip("test.pyz", "password")
# Now import modules from the archive as usual
import testmod
于 2018-08-20T16:38:06.800 回答