我在Python 3.6中编写了一个使用模块pycryptodome
的加密程序,特别是这些导入:
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Random import get_random_bytes
该程序有效,但如果没有用户自己安装pycryptodome
模块,则无法使用该程序。
有没有办法以某种方式包含该软件包,还是可以创建“第一次安装”来为最终用户安装它?
答案 0 :(得分:0)
简短回答 - 正如评论中已经提到的那样 - 您需要打包脚本。
答案很长 - 我以前第一次去过那里 - 这很烦人。他们打包Python模块和脚本的方式不断发展,并不是所有可用的文档都保持最新。您可以轻松地阅读最近的文档,这些文档在阅读时已经存在缺陷(即已过时)。
最简单的方法是pip
的简单文件,它描述了项目的依赖关系。它被称为requirements.txt
。可以找到最新信息here。
如果这还不够,您必须打包您的应用程序。可以找到一个很好但很少维护和稍微过时的概述/介绍here。这对一开始有好处,但不要试着跟着它去!可以找到另一本通常引用的初学者手册here。阅读它以获得基本的理解,不要试着遵循它。
到此为止,是时候阅读"What the Hell? -- A Journey Through the Nine Circles of Python Packing"了。它提供了许多实用的建议。最实用的:看看其他项目是如何做到这一点并复制粘贴它......嗯......从中学习。
如果你现在不害怕,我实际上可以推荐查看Python模块模板。我所知道的最好的一个是"Cookiecutter PyPackage"。其维护良好的文档可用here。如果您学习了Python打包的基础知识,那么它是一种快速可靠的方法,可以创建打包代码所需的所有文件和基础结构。
荣誉奖:有一些工具可以简化整个过程。我的列表中的第一位也已在评论中提及PyInstaller(manual)。通常提到的另一个工具(适用于Windows)是py2exe(没有最新的文档,AFAIK)。另一个崭露头角且前途无量(但尚未投入生产?)的工具是Briefcase(documentation)。这些更多,但他们都有自己的问题。你很有可能最终阅读上述文献,试图理解这些问题......