win11安装binwalk踩过的坑(把有用的博文再整理一下,想法仅供参考)

binwalk具体安装即环境配置操作可参考这篇博文

http://t.csdnimg.cn/QDaIwicon-default.png?t=N7T8http://t.csdnimg.cn/QDaIw


问题一:pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1

http://t.csdnimg.cn/LQrXRicon-default.png?t=N7T8http://t.csdnimg.cn/LQrXR可能会遇到在上面博文“找到保存放路径”这一步,在鼠标移动至相应包上面时没有地址出现,这时你可以直接到你操作的项目地址下,如下图(我操作的文件叫binwalk):

即在右侧蓝框处,我的是 C:\Users\Lenovo\PycharmProjects\binwalk\.venv\Scripts,这个项目文件位置因人而异,但是如果你安装成功了pyinstaller,就一定可以在Script文件下找到pyinstaller.exe。

 这时你只需要把包含pyinstaller.exe的文件夹路径添加到环境变量的Path路径中即可(即 C:\Users\Lenovo\PycharmProjects\binwalk\.venv\Scripts【这是我的,你的可能不一样】


当然如果你是自行安装而不是在pycharm终端中执行pip install pyinstaller,你可以直接在主文件夹下搜索pyinstaller.exe文件,找到其所在文件夹,将该文件夹的完整地址添加到环境变量的Path路径中即可(未尝试过,理论上应该可行)


文件隐藏问题

由于部分文件是系统文件,为防止误操作可能会被隐藏,在你翻阅文件夹的时候可能找不到,但是进行文件搜索的时候,在文件下方文件路径中依然会显示出来。

如果你需要找到这部分文件,可以进行如下操作

1.打开文件夹 - 选项

2. 查看-找到“隐藏文件和文件夹一栏” 选择“显示隐藏的文件、文件夹和驱动器”


添加环境变量过程:(系统变量过程一样,根据需要添加)

1.在windows搜索框中输入“查看高级系统设置”,打开

 2.点上面栏“高级”,右下角环境变量,点Path,编辑

  3.新建,将刚才的地址粘贴到这一栏,确定


问题二: 输入python setup.py install没反应,可能因为没有安装python

建议安装python3.8以上的,因为最新版的pyinstaller6.3.0支持3.8及以上的


问题三:在我安装完成之后,我再次进行安装出现了这个提示:

PS C:\Program Files\Python311\Lib\site-packages> pip install pyinstaller
Defaulting to user installation because normal site-packages is not writeable
DEPRECATION: Loading egg at c:\program files\python311\lib\site-packages\binwalk-2.3.2-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330

Requirement already satisfied: pyinstaller in c:\users\lenovo\appdata\roaming\python\python311\site-packages (6.3.0)
Requirement already satisfied: setuptools>=42.0.0 in c:\program files\python311\lib\site-packages (from pyinstaller) (65.5.0)
Requirement already satisfied: altgraph in c:\users\lenovo\appdata\roaming\python\python311\site-packages (from pyinstaller) (0.17.4)
Requirement already satisfied: pyinstaller-hooks-contrib>=2021.4 in c:\users\lenovo\appdata\roaming\python\python311\site-packages (from pyinstaller) (2024.0)
Requirement already satisfied: packaging>=22.0 in c:\users\lenovo\appdata\roaming\python\python311\site-packages (from pyinstaller) (23.2)
Requirement already satisfied: pefile>=2022.5.30 in c:\users\lenovo\appdata\roaming\python\python311\site-packages (from pyinstaller) (2023.2.7)
Requirement already satisfied: pywin32-ctypes>=0.2.1 in c:\users\lenovo\appdata\roaming\python\python311\site-packages (from pyinstaller) (0.2.2)

只要用管理员模式打开cmd就可以消除这个:

Defaulting to user installation because normal site-packages is not writeable

但是使用管理员模式后依然有这个警告,但似乎对整体运行没有影响

DEPRECATION: Loading egg at c:\program files\python311\lib\site-packages\binwalk-2.3.2-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330 

而下面的requirement already satisfied...是说明安装成功了,此时你进行卸载操作(pip uninstall pyinstaller)也是完全可以

这是安装成功的提示:
PS C:\Program Files\Python311\Scripts> pip uninstall pyinstaller
Found existing installation: pyinstaller 6.3.0
Uninstalling pyinstaller-6.3.0:
  Would remove:
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyi-archive_viewer.exe//看到这里了吗,此处的appdata就是一个被系统隐藏的文件,你在文件夹中直接看是看不到的,这是我之前安装的位置
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyi-bindepend.exe
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyi-grab_version.exe
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyi-makespec.exe
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyi-set_version.exe
    c:\users\lenovo\appdata\roaming\python\python311\scripts\pyinstaller.exe
    c:\users\lenovo\appdata\roaming\python\python311\site-packages\pyinstaller-6.3.0.dist-info\*
    c:\users\lenovo\appdata\roaming\python\python311\site-packages\pyinstaller\*

[Y/n]

能够显示出安装的路径就说明你成功安装了,所以你可以通过卸载操作来判断是否将pyinstaller成功安装

强制指定下载路径导致的问题

但是如果没有成功安装呢 

这是我安装失败的提示:

Installing collected packages: altgraph, setuptools, pywin32-ctypes, pefile, packaging, pyinstaller-hooks-contrib, pyinstaller
Successfully installed altgraph-0.17.4 packaging-23.2 pefile-2023.2.7 pyinstaller-6.3.0 pyinstaller-hooks-contrib-2024.0 pywin32-ctypes-0.2.2 setuptools-69.0.3

ERROR: Exception:
Traceback (most recent call last):
  File "C:\Program Files\Python311\Lib\shutil.py", line 825, in move
    os.rename(src, real_dst)
PermissionError: [WinError 5] 拒绝访问。: 'C:\\Users\\Lenovo\\AppData\\Local\\Temp\\pip-target-0ymwsqhg\\lib\\python\\altgraph' -> 'C:\\Program Files\\Python311\\Scripts\\altgraph'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Python311\Lib\site-packages\pip\_internal\cli\base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\pip\_internal\cli\req_command.py", line 245, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\pip\_internal\commands\install.py", line 510, in run
    self._handle_target_dir(
  File "C:\Program Files\Python311\Lib\site-packages\pip\_internal\commands\install.py", line 569, in _handle_target_dir
    shutil.move(os.path.join(lib_dir, item), target_item_dir)
  File "C:\Program Files\Python311\Lib\shutil.py", line 841, in move
    copytree(src, real_dst, copy_function=copy_function,
  File "C:\Program Files\Python311\Lib\shutil.py", line 561, in copytree
    return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\shutil.py", line 459, in _copytree
    os.makedirs(dst, exist_ok=dirs_exist_ok)
  File "<frozen os>", line 225, in makedirs
PermissionError: [WinError 5] 拒绝访问。: 'C:\\Program Files\\Python311\\Scripts\\altgraph'

 此时因为报错内容是:PermissionError: [WinError 5] 拒绝访问。因此我再次使用管理员模式重新安装,没有再出现报错。但是我不确定是否成功安装了,所以我尝试卸载,但此时就提示说:pyinstaller并没有被安装,所以无法卸载,此时就说明,并未成功安装

我在这次报错下采用了强制指定下载路径的方式,即pip install pyinstaller --target="xxx(指定路径)",在这之后我发现pyinstaller.exe出现在了bin文件下面,而不是dist文件下,这似乎是'--target'参数安装包时的发生的意外行为(chatgpt说的),因此不提倡强制指定路径安装

所以我在此之后就把下载的不完全的包手动删掉了(不要学我


问题四:python代码空格问题报错:python: can't open file 'C:\\Program': [Errno 2] No such file or directory

仔细检查后发现确实没有这个文件,上网搜索之后发现是python代码空格的问题

因为我不擅长python,所以只对自己遇到的问题进行说明,详细问题请参考:
http://t.csdnimg.cn/Rey2Zicon-default.png?t=N7T8http://t.csdnimg.cn/Rey2Z

 这是我出错时的代码:

import os
import sys

strl = ' '.join(sys.argv[1:])
command = "python C:\\Program Files\\Python311\\Scripts\\binwalk" + strl
os.system(command)

因为Program后面都被截断了,并且发现在我参考的安装binwalk那篇文章中,binwaik文件的地址并没有出现带有空格的部分,即:

import os
import sys

strl = ' '.join(sys.argv[1:])
command = "python C:\\Python39\\Scripts\\binwalk " + strl
os.system(command)

这里提一嘴,这里的strl是保存binwalk.py文件的文件夹名(务必确保你创建的文件夹名称和代码里一致,且执行成功后不要删除或者更改文件夹名称,以免出现问题)

在没执行pyinstaller --onefile binwalk.py时,应只有binwalk.py一个文件,如下图:

将代码改为如下即可:(注意关键处空格不能缺少,否则导致解析失败)
推荐末尾保留一个空行

import os
import sys
#将命令行参数拼成一个字符串
strl = ' '.join(sys.argv[1:])

#使用引号将包括空格的路径括起来,并拼接成完整的路径
command = 'python "C:\\Program Files\\Python311\\Scripts\\binwalk" ' + strl

#执行命令
os.system(command)

'pyinstaller --onefile binwalk.py'执行完成后提示successful时,如果将binwalk.exe所在文件夹路径添加到Path之中后,运行 'pyinstaller -h' 依然失败的话,目前我知道的有两种可能:

1.可能还是没有解析成功,请注意问题提示,并检查代码是否符合规范。在修改代码之后,删除之前产生的文件和相应路径后,重复pyinstaller --onefile binwalk.py操作,直到正常产生pyinstaller的操作列表。

【除binwalk.py以外都是新产生的文件】 

【说明环境配置成功】 

2.环境变量中路径冲突问题,这个我会放在问题五中详细说明


问题五.为什么我在cmd默认路径下可以正常使用'binwalk -h'命令,但是在文件夹的其他地方打开终端就不行呢?

此时很可能出现了环境配置中路径冲突问题

详情参考:Windows 10 / 11 环境变量 (用户变量与系统变量)

http://t.csdnimg.cn/CV3hkicon-default.png?t=N7T8http://t.csdnimg.cn/CV3hk在这篇博文的"1.5.2Path变量"中提到:

4. Windows 系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应的可执行文件。然后在系统变量的 path / PATH / Path 路径中查找,如果找不到,再到用户变量的 path / PATH / Path 路径中查找。

Windows 对于 Path 变量的处理方式是,将用户变量的 Path 添加到系统变量 Path 后面。Windows 在查找指令的时候,是按 Path 中的路径从前往后找,直至在某个路径中找到了该指令。如果系统变量 Path 中有对应指令的话,Windows 就不会再去用户变量 Path 中查找。

接下来看我的错误案例:

在windows搜索窗口打开cmd ,输入'binwalk -h',成功打开

在E盘打开cmd, 输入'binwalk -h',失败了

这是怎么回事呢,下面看一下我的环境变量中的用户Path变量系统Path变量 ;

用户Path

系统变量

 再打开cmd,输入'where binwalk',发现有两个不同的binwalk(一个是binwalk.exe,一个是binwalk文件夹),并且binwalk文件夹的路径在系统Path中,会windows系统先查找到它,找到这个binwalk文件夹之后就不会再查找用户Path中的binwalk.exe,自然就运行不了。

怎么解决呢?因为C:\Program Files\Python311\Scripts\这个系统Path路径是安装python时附带装上的,删掉可能导致其他问题;因此在系统变量中再创建一个D:\strl\dist的路径就可以,记得把他放在C:\Program Files\Python311\Scripts\前面


!!必看:cmd中,为什么添加了环境变量还是不能直接运行程序

http://t.csdnimg.cn/TTdDJicon-default.png?t=N7T8http://t.csdnimg.cn/TTdDJ遇到问题会继续补充

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Win11上使用虚拟机安装CentOS7的步骤如下: 1. 首先,确保你的电脑支持虚拟化技术并已启用。你可以在BIOS或UEFI设置中启用虚拟化技术。启用后保存设置并重新启动电脑。 2. 下载并安装适合Win11的虚拟化软件,例如VirtualBox、VMware Workstation或Hyper-V。这些软件都可以在官方网站上找到并免费下载。 3. 打开虚拟化软件,并创建一个新的虚拟机。根据软件的指导,选择CentOS7的镜像文件作为虚拟机的操作系统。 4. 在虚拟机设置过程中,可以设置虚拟机的内存大小、硬盘大小和其他配置选项。根据你的需求进行相应的设置。 5. 完成虚拟机的设置后,启动虚拟机并按照CentOS7的安装向导进行安装。在安装过程中,你需要选择适当的语言、时区和磁盘分区等选项。 6. 完成安装后,重启虚拟机并登录到CentOS7系统中。你可以像在物理计算机上一样使用CentOS7,安装软件、配置网络等。 请注意,这只是一个基本的安装过程概述。具体的步骤可能会因不同的虚拟化软件和操作系统版本而有所不同。建议你在安装过程中参考相关的官方文档或教程以获取更详细的指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [win10自带虚拟机安装centos实操(含参考博文)](https://blog.csdn.net/weixin_42433809/article/details/123633073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [windows10安装虚拟机、centos7](https://blog.csdn.net/m0_38130682/article/details/125831760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [VMware虚拟机安装CentOS 6.9图文教程](https://download.csdn.net/download/weixin_38733597/14108913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值