如何使用pyinstaller?

时间:2015-12-24 13:21:31

标签: python compilation pyinstaller

好的,所以我在编程方面是一个完整的菜鸟,我正在尝试编写一个我编写的简单程序,它接受一个字符串并打印出莫尔斯代码中的字符串,它被称为morse.py。我使用

安装了pyinstaller
 pip install pyinstaller

我正在尝试使用pyinstaller编译我的程序。

现在我已经搜索了一下,它说我需要编写pyinstaller morse.py,但我真的不知道在哪里写。我尝试移动到我的程序目录并在CMD中执行此操作,但它不起作用。我尝试在同一目录中创建一个python程序,并且这样做也没有用。我找不到任何有用的信息告诉我如何编译文件。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:13)

我建议先阅读模块本身的 Using Pyinstaller section in the documentation

您还可以使用一些教程(例如Matt Borgerson's one)。

为了回顾一下你应该:

  • 编写脚本并确保其正常运行
  • 命令行

    运行

    〜\ pyinstaller your_file_name .py

  • 此命令将生成 your_file_name .spec文件,您可以在其中包含应用程序所需的所有dll以及任何自定义设置(Using Spec Files

  • 一旦确定了要在.exe应用程序中包含的内容,就可以从命令行运行

    〜\ pyinstaller [ option1 ] [ option2 ] your_file_name .py

您可以在文档中找到options的完整列表。一个例子可能是 pyinstaller.exe --onefile --windowed --icon = app.ico app.py 其中:

  • - onefile:创建一个单文件捆绑的可执行文件。
  • - windowed:如果您要在Mac OS X或Windows中进行编译,则选择参数
  • - icon =:选择要用作文件图标的文件。

您也可以使用 py2exe 轻松创建您的exe文件。

答案 1 :(得分:2)

尝试编写pyinstaller的完整路径(例如= C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python35-32 \ Scripts \ pyinstaller.exe)

完整的cmd字符串必须如下所示:

$(document).on('click', '#up, #down, #up5, #down5', function() {
    button_choice = $(this).attr('id'); 
    $('.ch:checked').each(function() {

          row = $(this).closest("tr");

          row.css('background', 'hotpink');
          checked_length = $('.ch:checked').length;

          if(button_choice == 'up') {
            if(row.index() > 1) {
            row.insertBefore(row.prev())
            }
          }
          if(button_choice == 'down') {
            for(i=0;i<checked_length;i++) { row.insertAfter(row.next()) }
          }
          if(button_choice == 'up5') {
            for(i=0;i<checked_length+3;i++) { if(row.index() > 1) { row.insertBefore(row.prev()) } }
          } 
          if(button_choice == 'down5') {
            for(i=0;i<checked_length+4;i++) { row.insertAfter(row.next()) }
          }  
})
}) 

答案 2 :(得分:0)

你好,我用python编写了代码,我用它把自己变成了exe。

请确保将其与要转换的文件放在同一目录中。

import subprocess
import shutil
import os

cmd = input("file name: ") # asks user for filename
extra = input("extra commands? eg -w -F if using two or more put a space between: ") # asks for extra options
suros = "pyinstaller "+ extra + " " + cmd + ".py" # sets run command
current_workin_path = os.getcwd() # gets current working path
dirt = current_workin_path + "/"+ cmd # set current working path for folder creation
os.mkdir(dirt) # creates folder for working path and for a copy
shutil.copy(cmd + ".py", current_workin_path + "/" + cmd + "/" + cmd + ".py") # creats copy of python file in the newly set path
os.chdir(current_workin_path + "/" + cmd + "/") # changes current working path to newly created one
subprocess.run(suros) # runs the command set eariler
os.remove(cmd + ".py") # delete the copy of python file

希望这对某人有帮助。

答案 3 :(得分:0)

我对Python没有太多经验。我能够编写简单但有用的脚本。我能够使用pyinstaller将它们转换为.exe。但是,我编写的程序越多,我拥有的python版本(以及软件包和虚拟环境)就越多。一开始的工作突然停止了工作,使我非常困惑。但是我从一页跳到另一页。我的帖子是帮助其他新手。我使用的是Windows,但某些规则可能与其他系统相同。 我要在2020年3月编写它。Pyinstaller不能在最新的python版本3.8下正常工作。因此,首先您需要安装Python 3.7。其次,根据您的系统类型选择版本。可以是32或64。 您可以安装多个Python版本。在命令行中,当您输入“ py”时,计算机将查找最新的Python版本-我的意思是版本号最高的版本。这是因为文件C:\ Windows \ py.exe在您安装第一个Python时出现。如果今天您仅安装了python 3.7,则“ py”将运行python 3.7。但是第二天,当您安装Python 3.8并键入“ py”时,它将运行Python 3.8。如果要使用较旧的版本,只需键入py -3.7

C:\Users\Ania>py Python 3.8.2(tags / v3.8.2:7b3ab59,2020年2月25日,23:03:10)[MSC v.1916 64位(AM D64)]在win32上 输入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。

C:\Users\Ania>py -3.7

Python 3.7.7(标签/v3.7.7:d7c567b08f,2020年3月10日,10:41:24)[MSC v.1900 64位 (AMD64)]在win32上 输入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。

现在要使用您的项目,您需要为其创建一个虚拟环境。记住要使用正确的python版本。首先,为它创建一个文件夹。

D:\PYTHON>mkdir my_new_great_project

转到该文件夹​​:

D:\PYTHON>cd my_new_great_project

创建venv:

D:\PYTHON\my_new_great_project>py -3.7 -m venv venv

上面的第一个“ venv”是我们正在使用的python模块的名称。第二个“ venv”是我们正在创建的虚拟环境的名称。

激活venv:

D:\PYTHON\my_new_great_project>venv\Scripts\activate.bat

您应该看到:

(venv) D:\PYTHON\my_new_great_project>

现在,您可以使用pip安装项目需要的任何外部软件包。

(venv) D:\PYTHON\my_new_great_project>pip install pandas

提示“知道”您需要python 3.7的软件包。 创建项目文件时,请勿将其放在“ venv”文件夹中。

要通过venv运行项目,只需输入其名称

(venv) D:\PYTHON\my_new_great_project>great_project.py

如果您已完成项目,则一切正常,并且需要.exe文件,是时候在venv中安装pyinstaller了。

(venv) D:\PYTHON\my_new_great_project>pip install pyinstaller

要检查您已经安装了哪些外部软件包,只需键入“点列表”:

(venv) D:\PYTHON\my_new_great_project>pip list

打包版本


高度图0.17 未来0.18.2 numpy的1.18.2 熊猫1.0.3 pefile 2019.4.18 点19.2.3 PyInstaller 3.6 python-dateutil 2.8.1 pytz 2019.3 pywin32-ctypes 0.2.0 设置工具41.2.0 六个1.14.0

现在从venv开始,您可以运行pyinstaller来创建一个.exe文件:

(venv) D:\PYTHON\my_new_great_project>pyinstaller --onefile --name my_project great_project.py

现在,您的项目可以在名为“ dist”的文件夹中作为单个.exe文件使用。

我希望它可以帮助某人。