python - PyInstaller 无法在 Kali Linux 上运行

标签 python linux pyinstaller

我正在尝试在 Kali Linux 上使用 pyinstaller 来编译 python 程序,但是当我运行它时遇到一些问题:

root@kali:/usr/bin# ./pyinstaller ~/Desktop/neighbourhood.py 
14 INFO: wrote /usr/share/pyinstaller/neighbourhood/neighbourhood.spec
44 INFO: UPX is available.
520 INFO: checking Analysis
520 INFO: building Analysis because out00-Analysis.toc non existent
522 INFO: running Analysis out00-Analysis.toc
575 INFO: Analyzing /usr/share/pyinstaller/support/_pyi_bootstrap.py
1022 INFO: Analyzing /usr/share/pyinstaller/PyInstaller/loader/archive.py
1058 INFO: Analyzing /usr/share/pyinstaller/PyInstaller/loader/carchive.py
1107 INFO: Analyzing /usr/share/pyinstaller/PyInstaller/loader/iu.py
1121 INFO: Analyzing /root/Desktop/neighbourhood.py
2964 INFO: checking Tree
2964 INFO: building because out00-Tree.toc missing or bad
2964 INFO: building Tree out00-Tree.toc
2996 INFO: checking Tree
2996 INFO: building because out01-Tree.toc missing or bad
2996 INFO: building Tree out01-Tree.toc
Traceback (most recent call last):
  File "./pyinstaller.py", line 91, in <module>
    main()
  File "./pyinstaller.py", line 86, in main
    run_build(opts, spec_file)
  File "./pyinstaller.py", line 50, in run_build
    PyInstaller.build.main(spec_file, **opts.__dict__)
  File "/usr/share/pyinstaller/PyInstaller/build.py", line 1625, in main
    build(specfile, buildpath)
  File "/usr/share/pyinstaller/PyInstaller/build.py", line 1582, in build
    execfile(spec)
  File "/usr/share/pyinstaller/neighbourhood/neighbourhood.spec", line 5, in <module>
    hookspath=None)
  File "/usr/share/pyinstaller/PyInstaller/build.py", line 389, in __init__
    self.__postinit__()
  File "/usr/share/pyinstaller/PyInstaller/build.py", line 315, in __postinit__
    self.assemble()
  File "/usr/share/pyinstaller/PyInstaller/build.py", line 475, in assemble
    importTracker.analyze_script(script)
  File "/usr/share/pyinstaller/PyInstaller/depend/imptracker.py", line 205, in analyze_script
    return self.analyze_r('__main__')
  File "/usr/share/pyinstaller/PyInstaller/depend/imptracker.py", line 98, in analyze_r
    newnms = self.analyze_one(name, nm, imptyp, level)
  File "/usr/share/pyinstaller/PyInstaller/depend/imptracker.py", line 159, in analyze_one
    mod = self.doimport(nm, ctx, fqname)
  File "/usr/share/pyinstaller/PyInstaller/depend/imptracker.py", line 256, in doimport
    hooks = __import__('PyInstaller.hooks', globals(), locals(), [hookmodnm])
TypeError: Item in ``from list'' not a string

我不知道这是否是问题,但我的很多文件夹中都有 pyinstaller。

root@kali:~# whereis pyinstaller
pyinstaller: /usr/bin/pyinstaller /usr/local/bin/pyinstaller /usr/share/pyinstaller

我按照 YouTube 上的教程进行操作,它运行此命令:

./pyinstaller setup.py

但我在 pyinstaller 的文件夹中找不到 setup.py 。 如果运行 pyinstaller 时不带点斜杠,我得到这个:

root@kali:~# pyinstaller No handlers could be found for logger "PyInstaller.utils.misc"

有人知道怎么解决吗? 谢谢你!

最佳答案

如果 whereis 显示您的路径,则 pyinstaller 位于您的 PATH 中。这意味着您不需要点斜杠前缀来运行pyinstaller。运行 pyinstaller --version 以查看它是否在没有 ./ 前缀的情况下工作。

请考虑到输出目录将在您当前所在的目录中创建。在您的情况下为 /usr/bin,这是一种奇怪的选择。另外,我不太明白为什么你要使用 root 用户来执行此操作。

因此,如果您首先将目录更改为脚本所在的目录,那就更好了:

$ cd ~/Desktop/neighbourhood.py

然后编译程序:

$ pyinstaller neighbourhood.py

关于您遇到的错误。很难说到底发生了什么。可能,这是动态传递给 python 的 import 的模块名称的问题。查看更多信息here 。如果您可以在 python 2 和 python 3 之间进行选择,请使用后者来避免此类问题。

最后但并非最不重要的一点:我强烈建议您使用 official docs而不是 YouTube 教程。

关于python - PyInstaller 无法在 Kali Linux 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697213/

相关文章:

python - 为什么 types.MethodType 提示参数太多?

linux - 如何在Linux中设置最大TCP接收窗口大小?

python - 如何使用 pyinstaller 包含文件?

python - pyinstaller:更改应用程序图标

Python PyInstaller 和包含窗口图标

使用 Visual Studio Code 在 ROS 中调试 python 脚本

python - Python 列表中的额外元素

Python:由for循环引起的围栏帖子

java - 在 Linux 中通过脚本启动 Java 程序

linux - 如何找到文件的所有符号链接(symbolic link)?