如何在我的python脚本中包含一个pip安装模块?

问题描述 投票:2回答:1

我在Python 3.6中编写了一个使用pycryptodome模块的加密程序,特别是这些导入:

from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Random import get_random_bytes

该程序有效,但如果没有用户自己安装pycryptodome模块,则无法使用。

有没有办法以某种方式包含该包,还是可以创建“第一次设置”来为最终用户安装它?

python python-module end-user
1个回答
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打包的基础知识,那么它是一种快速可靠的方法,可以创建打包代码所需的所有文件和基础结构。

荣誉奖:有一些工具,试图简化整个过程。我的名单上的第一名也在评论中已经提到过PyInstallermanual)。通常提到的另一个工具(用于Windows)是py2exe(没有最新的文档,AFAIK)。 Briefcasedocumentation)是另一个有前途和有希望(但尚未生产的?)工具。这些更多,但他们都有自己的问题。你很有可能最终阅读上述文献,试图理解这些问题......

© www.soinside.com 2019 - 2024. All rights reserved.