我用 Python 编写了第二个程序。这是一个计算二次方程根的程序。我觉得这很酷,我想让我的朋友使用它,而不必让他们安装 python。
我从朋友那里听说了 Pyinstaller,我尝试了这个方法:首先我在 cmd 中输入
pip install pyinstaller
。然后我将目录更改为包含我要与朋友共享的文件的文件夹(称为 vkv.py
)。然后我输入了这个命令:pyinstaller vkv.py
但是我得到了这个错误:Indexerror: tuple index out of range
。显然问题是我有 Python 3.6.0,而 Pyinstaller 仅适用于 Python 3.5 之前的版本。
所以我不得不尝试另一种方法。昨天,我尝试了 cx_Freeze 和其他一些我忘记的方法,但都失败了。由于我使用的是 Python 3.6.0(与 Pyinstaller 相同),Cx_Freeze 失败,并且我不记得其他方法出了什么问题。
我的朋友(他告诉我 Pyinstaller)告诉我使用 virtualenv,所以我查找了有关此事的教程。看起来我需要创建一个使用 Python 3.5 的虚拟环境。这些是我在 cmd 中输入的命令:
pip install virtualenv
mkdir Environments
cd environments
virtualenv -p C:\Users\hp\AppData\Local\Programs\Python\Python35\python.exe py35_env
C:\Users\hp\Environments\py35_env\Scripts\activate
pip install pyinstaller
。然后我将目录更改为:C:\Users\hp\Desktop\Code\Python testing
(这是 vkv.py 文件所在的位置)。然后我输入:pyinstaller vkv.py
,但现在我得到了一大堆行,最后一行有错误:ImportError: DLL load failed: %1 is not a valid Win32 application.
。这是它的截图:
作为一个好奇的人,我想知道如果我打开另一个 cmd 窗口并在没有环境的情况下再次尝试 Pyinstaller 会发生什么(所以我基本上再次尝试了上面列出的第一种方法)。奇怪的是我得到了相同的“ImportError”而不是之前的“IndexError”。
所以现在我的问题是(从重要到不重要排列):
pyinstaller vkv.py
时发生了什么?为什么它给我一个 ImportError 而不是 IndexError,这是我第一次尝试运行此命令时得到的?很抱歉这篇文章很长,但我喜欢提供很多信息,因为我担心我可能会遗漏一些重要的东西。
预先感谢您的任何帮助!
由于您想使用Python 3.6,因此您不能使用Pyinstaller、py2exe、cx_Freeze 或其他。不过,有一个名为 Transcrypt 的工具,它与 Python 3.6 兼容。它可以通过 pip:
pip install transcrypt
安装,并将 Python 代码转换为 JavaScript。要使用它,请打开控制台并输入 transcrypt vkv.py
。
它会自动生成一个文件夹,
__javascript__
,以及其中的文件。转录结束后,您就可以将其与 html 一起使用了。
(假设.html与.py和文件夹位于同一目录中)
<html>
<head>
<title>Example</title>
</head>
<body>
<script src="./__javascript__/vkv.min.js"></script>
</body>
</html>
您可以通过使用浏览器运行该 html 将其用作可执行文件(取决于您的程序,这里是文档)。
尝试从 python.org 删除 3.6 并安装 3.5.3。
使用 Pyinstaller 重试。
尝试使用 py2exe,它是一个 python 模块。 它非常简单,您需要做的就是:
下载并安装它http://sourceforge.net/projects/py2exe/files/
创建你的setup.py
运行你的setup.py
这里有一个网站将更详细地解释它http://inventwithpython.com/appendixc.html
我可以在 Python 3.6 环境中使用 pyinstaller。您需要下载 Development Release(不稳定)的 zip 文件,并且不要使用 pip,而是从下载的 pyinstaller 代码运行 setup.py 文件。
pip 安装 pyinstaller pyinstaller --onefile vkv.py
导入时间 随机导入
消息 = [ " 德西塞巴德 德萨德德 巴德德...", “更多,更多,更多,更多……”, “更多,更多,更多,更多……”, "更多,更多,更多,更多...", "更多信息...", "更多信息...", "更多信息...", “更多,更多,更多,更多……” ]
对于范围(10)内的 i:
message = random.choice(messages)
print(f"\033[91m{message}\033[0m")
time.sleep(random.randint(1, 3))
print(" [91m 打印时间。打印时间 1000 小时: [0m") print(" [91mIBAN: IR860170000000123456789012 [0m")