【问题标题】:pyinstaller command not found找不到 pyinstaller 命令
【发布时间】:2019-05-16 20:12:54
【问题描述】:

我在 VirtualBox 上使用 Ubuntu。如何将pyinstaller 添加到PATH

问题是当我说

pyinstaller file.py

它说找不到 pyinstaller 命令

它说它安装正确,根据其他帖子,我认为它有,但我无法让它工作。我跑了:

pip install pyinstaller

pyinstaller file.py 

但它不会工作。我想我需要将它添加到 shell 路径中,以便 Linux 知道在哪里可以找到它。

pip show pyinstaller 有效。

【问题讨论】:

  • pip install 放置任何东西的位置取决于您是否激活了 virtualenv,您的 Python 解释器(支持 pip)的位置等等。顺便说一句,“不起作用”不是这是一个特别有用的描述——包括问题本身中的特定错误消息将帮助人们确认您的诊断(即手头的问题是缺少 PATH 条目)是正确的。
  • 感谢您的帮助。我希望我可以包含一个更好的错误消息,但这就是终端吐出的所有内容。我已经尝试查看其他帖子,这就是我的结论。我不确定如何更改我的 PATH 以使其正常工作。最终的游戏是将python文件制作成可执行文件
  • “退出而不打印错误消息或采取任何明显的行动”更具描述性,如果这是手头的实际行为,“将无法正常工作”。
  • 顺便说一句,pip install pyinstaller(在 Windows 上)通常会在 Python 安装位置的 Scripts 子目录中放置一个 pyinstaller.exe 垫片(在 UNIX 系列系统上,该目录称为 bin) .你有没有看过它是否在那里?

标签: python python-3.x executable pyinstaller


【解决方案1】:

还有另一种使用 pyinstaller 的方法,将其用作 Python 脚本。

我就是这样做的,通过pyinstaller's documentation

创建一个名为 setup.py 的 Python 脚本或任何您喜欢的名称。

将此代码 sn-p 复制到 setup.py:

import PyInstaller.__main__
import os
    
PyInstaller.__main__.run([  
     'name-%s%' % 'name_of_your_executable file',
     '--onefile',
     '--windowed',
     os.path.join('/path/to/your/script/', 'your script.py'), """your script and path to the script"""                                        
])

确保您已安装 pyinstaller。 测试它:

  1. 打开终端
  2. 输入python3
  3. 输入import PyInstaller

如果没有出现错误,那么你就可以开始了。

setup.py 放入脚本的文件夹中。然后运行setup.py

这是在 Python3 中测试的。

【讨论】:

    【解决方案2】:

    如果您不想创建额外的 python 文件,可以使用以下命令。

    python -m PyInstaller myscript.py
    

    【讨论】:

      【解决方案3】:

      今天遇到同样的问题。就我而言,pyinstaller 位于 ~/.local/bin 中,而此路径不在我的 PATH 环境变量中。

      【讨论】:

        【解决方案4】:

        首先通过运行sudo -i 获得root 访问权限 然后再次安装pyinstaller:

        pip3 install pyinstaller
        

        【讨论】:

          【解决方案5】:

          您可以通过echo $PATH 来查看它的内容,然后从 $PATH 上列出的目录之一创建一个 符号链接 到您的 pyinstaller 的当前位置:

          sudo ln -s ~/.local/bin/pyinstaller /usr/local/sbin/pyinstaller

          在上述情况下,usr/local/sbin/ 是已在 $PATH 中列出的路径。

          【讨论】:

          • 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
          • 感谢您的反馈和指出指南链接。但是,我确实不明白为什么它不能回答所问的问题。我实际上遇到了同样的问题并按照@vincent.voyage 的提示解决了它。但是,由于没有给出问题的实际解决方案——只是它发生的原因——我觉得对该答案的补充是合适的(最好是在评论中)。
          • 稍微更改了答案,以使其更清晰,信息更丰富。
          • 如果您以“这应该是评论,但我没有代表”开始回答,那么您要求对“应该是评论”进行评论;)我确实浏览了其余部分您的回答,但没有理由不投票赞成删除,就像您在开幕式澄清中要求的那样。也就是说,虽然我个人会提议对@vincent.voyage 的答案进行编辑,但我可以看到这增加了什么——人们可以通过符号链接向 $PATH 添加一些内容的信息。我想我是在 *nix 上长大的,所以这对我来说很明显,但说出来也没什么坏处。 ...
          • 我会改写这个答案,删除开头的说明,并注意一旦您确定 X 不在您的路径中,您需要通过编辑 $PATH 或将其添加到您的路径中通过符号链接。考虑到这样重写,我认为它会落在“接受”而不是“投票删除”方面。我在这里既不是很有经验也不是绝对可靠,但我对此很有信心。 (毫无疑问,Meta 上有明确的帖子。)顺便说一句,上面的评论是我在审查队列中投票删除时自动生成的。这不是针对个人的:)
          猜你喜欢
          • 1970-01-01
          • 2018-12-15
          • 1970-01-01
          • 1970-01-01
          • 2017-02-02
          • 2013-07-13
          • 2014-10-31
          • 1970-01-01
          相关资源
          最近更新 更多