我在 Python 3.6 中编写了一个使用模块的加密程序pycryptodome
,特别是这些导入:
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Random import get_random_bytes
pycryptodome
该程序可以工作,但如果没有用户自己安装模块,它就无法使用。
有没有办法以某种方式包含该软件包,或者我可以创建一个“首次设置”来为最终用户安装它?
我在 Python 3.6 中编写了一个使用模块的加密程序pycryptodome
,特别是这些导入:
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Random import get_random_bytes
pycryptodome
该程序可以工作,但如果没有用户自己安装模块,它就无法使用。
有没有办法以某种方式包含该软件包,或者我可以创建一个“首次设置”来为最终用户安装它?
简短的回答——正如评论中已经提到的——你需要打包你的脚本。
长答案-我以前第一次去过那里-很烦人。他们打包 Python 模块和脚本的方式在不断发展,并不是所有可用的文档都保持最新。您可以轻松地最终阅读最近的文档,这些文档在阅读时已经存在缺陷(即已过时)。
最简单的方法,不用一路走下去,是一个简单的文件pip
,它描述了你的项目的依赖关系。它被称为requirements.txt
。可在此处找到最新信息。
如果这还不够,您必须打包您的应用程序。可以在此处找到一个很好但很少维护且有些过时的概述/介绍。这是一个很好的开始,但不要试图遵循它!可以在此处找到另一个常被引用的针对初学者的 OUTDATED 手册。阅读它以获得基本的理解,不要试图按照它来写信。
一旦你到了这一点,就该阅读“这到底是什么?——Python 打包的九个循环之旅”。它提供了很多实用的建议。最实用的:看看其他项目是如何做的,然后复制粘贴它……嗯……从中学习。
如果您现在还没有被吓到,我实际上可以建议您查看 Python 模块模板。我所知道的最好的之一是“Cookiecutter PyPackage”。其维护良好的文档可在此处获得。如果您了解了 Python 打包的基础知识,那么它是创建打包代码所需的所有文件和基础设施的一种快速可靠的方法。
荣誉奖:有一些工具,试图简化整个过程。PyInstaller(手册)在我的列表中排名第一,并且在评论中也已经提到。通常提到的另一个工具(用于 Windows)是py2exe(没有可用的最新文档,AFAIK)。另一个崭露头角且有前途(但尚未准备好生产?)的工具是公文包(文档)。还有更多,但他们都有自己的问题。您很有可能最终会阅读上述文献以试图理解这些问题......