python中pyinstaller打包时出现的问题,跪求大神帮助

love_nicole 2020-12-05 04:37:47
C:\Users\Administrator>pyinstaller -F D:\python VIP\chap16\stusystem
39 INFO: PyInstaller: 4.1
39 INFO: Python: 3.9.0
39 INFO: Platform: Windows-10-10.0.18362-SP0
40 INFO: wrote C:\Users\Administrator\python.spec
41 INFO: UPX is not available.
script 'C:\Users\Administrator\VIP\chap16\stusystem' not found

好不容易安装了Pyinstallers,按照视频中老师的代码敲的,为什么路径会显示在c盘?明明在D盘啊。。请问这种问题要怎么解决?谢谢
...全文
1788 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WoHuiLa 2022-07-28
  • 打赏
  • 举报
回复

请问楼主怎么解决的,我也遇到了呜呜

love_nicole 2020-12-30
  • 打赏
  • 举报
回复
感谢,你好厉害哦
crifan 2020-12-23
  • 打赏
  • 举报
回复
虽然你问题已解决,但估计你对于问题根源,没有足够的了解。所以专门详细解释:

用`PyInstaller`去打包python程序,用命令:

```bash
C:\Users\Administrator>pyinstaller -F D:\python VIP\chap16\stusystem
```

结果出错:

```bash
39 INFO: PyInstaller: 4.1
39 INFO: Python: 3.9.0
39 INFO: Platform: Windows-10-10.0.18362-SP0
40 INFO: wrote C:\Users\Administrator\python.spec
41 INFO: UPX is not available.
script 'C:\Users\Administrator\VIP\chap16\stusystem' not found
```

其中很明显就是:

`-F`参数所传入的路径`D:\python VIP\chap16\stusystem`中间有空格

导致实际结果相当于:

```bash
C:\Users\Administrator>pyinstaller -F D:\python
```

而此处很明显Windows中只存在目录`D:\python VIP`,而(估计)不存在`D:\python`

所以导致最后报错找不到相关目录:

```bash
script 'C:\Users\Administrator\VIP\chap16\stusystem' not found
```

**根本原因**:

各种系统(Windows、Linux、Mac等)中的路径,往往是通过空格去区分参数的

```bash
your_command parameter1 parameter2
```

不论是:

* 命令行环境
* 代码运行环境

中,所以,如果路径中有空格,往往会导致路径被空格区分开,变成多个参数,导致传入的路径本身不对,且后续其他参数也不正常了,导致结果异常

对于此处的`pyinstaller`的[命令行参数语法](https://pyinstaller.readthedocs.io/en/stable/man/pyinstaller.html)是:

```bash
~  pyinstaller --help
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data <SRC;DEST or SRC:DEST>]
[--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
[--key KEY] [-d {all,imports,bootloader,noarchive}] [-s]
[--noupx] [--upx-exclude FILE] [-c] [-w]
[-i <FILE.ico or FILE.exe,ID or FILE.icns>]
[--version-file FILE] [-m <FILE or XML>] [-r RESOURCE]
[--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--runtime-tmpdir PATH] [--bootloader-ignore-signals]
[--distpath DIR] [--workpath WORKPATH] [-y]
[--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
scriptname [scriptname ...]
...
```

此处如果输入:

```bash
pyinstaller -F D:\python VIP\chap16\stusystem
```

其实变成了:

* 参数1:`-F D:\python`
* 参数2:`VIP\chap16\stusystem`

对应着:

* `-F`参数的值是:`D:\python`
* `scriptname`参数的值是:`VIP\chap16\stusystem`

很明显,不是我们希望的结果了,就会导致异常报错了。

**解决办法**:尤其是命令行操作时,或者代码调用传入的路径时,要确保传入的路径中不能包含空格

如果路径中包含空格,则可以**用(双)引号括起来**:

```bash
pyinstaller -F "D:\python VIP\chap16\stusystem"
```

这样就是我们希望的效果了:

* 参数1:`-F "D:\python VIP\chap16\stusystem"`

即:

* `-F`参数的值是:`D:\python VIP\chap16\stusystem`

即可正常运行。

更多内容详见:
路径中包含空格 · Python新手小白常见错误和问题
love_nicole 2020-12-22
  • 打赏
  • 举报
回复
谢谢哦,成功了呢
weixin_45903952 2020-12-11
  • 打赏
  • 举报
回复
好像用加P路径就可以,或在环境变量里设置
sanGuo_uu 2020-12-09
  • 打赏
  • 举报
回复
你路径里有个空格——python VIP 把空格改掉试试 (D:\python VIP\chap16\stusystem)这个东西,它应该是识别成2个了: D:\python VIP\chap16\stusystem
慕飒潇湘 2020-12-09
  • 打赏
  • 举报
回复
进到文件对应的目录打包,不要接路径什么的
清风未明月 2020-12-09
  • 打赏
  • 举报
回复
先进入安装包的文件夹,然后再运行pyinstall试试
【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)内容概要:本文围绕配电网的有功-无功协调优化问题展开研究,提出了一种基于改进多目标粒子群优化算法(小生境粒子群算法)的解决方案,并通过Matlab代码实现仿真验证。研究旨在通过优化算法有效降低网络损耗、提升电压稳定性并提高配电系统运行效率,尤其适用于含有分布式能源接入的现代配电网。文详细阐述了算法改进策略、目标函数构建、约束条件处理及仿真结果分析,展示了该方法相较于传统算法在收敛性和多样性方面的优势。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网优化工作的工程师。; 使用场景及目标:①应用于含高比例可再生能源接入的配电网优化运行;②用于教学与科研多目标优化算法的对比研究与改进;③为电力系统调度、无功补偿配置等实际工程问题提供算法支持与仿真验证手段。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注小生境机制在维持种群多样性的作用,并可通过修改目标函数或引入更多约束条件进行扩展研究,以提升解决复杂工程问题的能力。

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧