鱼C论坛

 找回密码
 立即注册
查看: 50|回复: 5

[已解决]argv问题求助~~

[复制链接]
发表于 昨天 15:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现有代码如下:

from sys import argv
script, first, second, third = argv
print("脚本名为:", script)
print("你的第一个变量为:", first)
print("你的第二个变量为:", second)
print("你的第三个变量为:", third)


在jupyter-lab中保存成Untitled.ipynb,shift+Enter,可以运行,但是报错如下:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[1], line 2
      1 from sys import argv
----> 2 script, first, second, third = argv
      3 #script, first, second = argv
      4 print("脚本名为:", script)

ValueError: not enough values to unpack (expected 4, got 3)

如果我把代码换成:
from sys import argv
#script, first, second, third = argv
script, first, second = argv
print("脚本名为:", script)
print("你的第一个变量为:", first)
print("你的第二个变量为:", second)
#print("你的第三个变量为:", third)

shift+Enter后能够运行,结果如下:
脚本名为: D:\anaconda3\Lib\site-packages\ipykernel_launcher.py
你的第一个变量为: -f
你的第二个变量为: C:\Users\Administrator\AppData\Roaming\jupyter\runtime\kernel-f5fe8642-d26a-4fa8-ac63-c7927f7b1fff.json。

但是,如果我把上述代码保存成ex13.py, 在Jupyter-Lab终端中我无论输入py ex13.py first second third,或者输入python ex13.py 1 2 3,都仍然是回行,没反应。。。

如果说是anaconda最早之前我安装在D:\Tools\路径下,当时添加的环境变量是"D:\Tools\anaconda3"和“D:\Tools\anaconda3\Scripts",

但现在我已经卸载了D:\Tools\anaconda3,重新安装在D:\anaconda3, 并且添加的环境变量是"D:\anaconda3"和“D:\anaconda3\Scripts"(已经是全部按照小甲鱼的《笨方法学python》的课件来安装的了。)

百思不得其解,难不成是我安装的win11有问题?
最佳答案
昨天 15:29
凊风 发表于 2025-10-31 15:29
FishC 发表于 2025-10-31 15:25
你好!关于你的 argv ...


你好!关于在终端中运行 `python --version` 无反应的问题,这通常是因为 Python 没有正确添加到系统 PATH 环境变量中,或者环境变量设置后没有生效。我来帮你一步步解决。

第一步:检查环境变量
1. 右键点击“此电脑”或“计算机”,选择“属性”。
2. 点击“高级系统设置”,然后点击“环境变量”。
3. 在“系统变量”部分,找到并选中“Path”变量,点击“编辑”。
4. 确保以下两个路径已添加(如果没有,请添加):
   D:\anaconda3
   D:\anaconda3\Scripts
5. 点击“确定”保存所有更改。

第二步:重启命令提示符
环境变量更改后,你需要关闭所有打开的命令提示符窗口,然后重新打开一个新的命令提示符窗口。这样更改才会生效。

第三步:测试 Python 命令
在新命令提示符中,尝试以下命令:
  1. python --version
复制代码

如果仍然无反应,请尝试使用完整路径直接运行:
  1. D:\anaconda3\python.exe --version
复制代码

如果这个能正常工作,说明环境变量设置有问题。

第四步:验证 PATH
在命令提示符中,输入以下命令来查看当前 PATH:
  1. echo %PATH%
复制代码

检查输出中是否包含 D:\anaconda3D:\anaconda3\Scripts。如果没有,请重复第一步。

额外提示
- 如果你安装了多个 Python 版本,可能会冲突。确保 Anaconda 的路径在 PATH 中优先级较高。
- 如果问题持续,尝试重新安装 Anaconda,并确保在安装过程中勾选“Add Anaconda to my PATH environment variable”选项。

一旦 Python 命令正常工作,你就可以在终端中运行你的脚本了。例如:
  1. python ex13.py first second third
复制代码


希望这能解决问题!如果还有疑问,请随时追问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 15:25 | 显示全部楼层
你好!关于你的 argv 问题,我来帮你分析一下。

首先,在 Jupyter-Lab 中运行代码时,argv 变量包含了 Jupyter 内核启动时的参数,而不是你从命令行传递的参数。这就是为什么你看到错误 "expected 4, got 3",因为 Jupyter 传递了 3 个参数:脚本名(实际上是 ipykernel_launcher.py)、-f 和一个 JSON 文件路径。

所以,在 Jupyter 中,不建议使用 argv 来获取用户输入。你可以改用 input() 函数来交互式地输入变量。

例如,修改代码如下:


  1. from sys import argv

  2. # 在 Jupyter 中,argv 可能不包含你期望的参数,所以使用 input
  3. print("脚本名为:", argv[0])  # argv[0] 是脚本名
  4. first = input("请输入第一个变量: ")
  5. second = input("请输入第二个变量: ")
  6. third = input("请输入第三个变量: ")

  7. print("你的第一个变量为:", first)
  8. print("你的第二个变量为:", second)
  9. print("你的第三个变量为:", third)
复制代码


其次,关于在终端中运行脚本没有反应的问题。可能的原因有:

- 确保你在终端中导航到了脚本所在的目录。例如,如果脚本在 C:\Users\YourName\ 目录下,你需要在终端中输入 cd C:\Users\YourName\ 来切换目录。

- 然后运行脚本。使用 python ex13.py first second thirdpy ex13.py 1 2 3。注意,pypython 可能指向不同的 Python 版本,确保它们正确。

- 如果仍然没有输出,检查脚本是否有语法错误,或者尝试在脚本中添加一些打印语句来调试,例如在开头打印 "脚本开始运行"。

关于 Anaconda 环境变量,你提到已经更新,但确保在终端中运行 python --version 来确认使用的是正确的 Python 解释器。如果环境变量设置正确,它应该指向 D:\anaconda3 下的 Python。

如果问题持续,尝试在终端中直接运行 Python 并导入 sys 打印 argv,以测试:


  1. python -c "import sys; print(sys.argv)"
复制代码


这应该输出当前参数列表。

希望这能帮助你解决问题!如果还有疑问,请随时追问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 15:29 | 显示全部楼层
FishC 发表于 2025-10-31 15:25
你好!关于你的 argv 问题,我来帮你分析一下。

首先,在 Jupyter-Lab 中运行代码时,argv 变量包含了 J ...

我在C:\Users\Administrator> python --version  无反应;

在D:\anaconda3> python --version  仍然无反应。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 15:29 | 显示全部楼层    本楼为最佳答案   
凊风 发表于 2025-10-31 15:29
FishC 发表于 2025-10-31 15:25
你好!关于你的 argv ...


你好!关于在终端中运行 `python --version` 无反应的问题,这通常是因为 Python 没有正确添加到系统 PATH 环境变量中,或者环境变量设置后没有生效。我来帮你一步步解决。

第一步:检查环境变量
1. 右键点击“此电脑”或“计算机”,选择“属性”。
2. 点击“高级系统设置”,然后点击“环境变量”。
3. 在“系统变量”部分,找到并选中“Path”变量,点击“编辑”。
4. 确保以下两个路径已添加(如果没有,请添加):
   D:\anaconda3
   D:\anaconda3\Scripts
5. 点击“确定”保存所有更改。

第二步:重启命令提示符
环境变量更改后,你需要关闭所有打开的命令提示符窗口,然后重新打开一个新的命令提示符窗口。这样更改才会生效。

第三步:测试 Python 命令
在新命令提示符中,尝试以下命令:
  1. python --version
复制代码

如果仍然无反应,请尝试使用完整路径直接运行:
  1. D:\anaconda3\python.exe --version
复制代码

如果这个能正常工作,说明环境变量设置有问题。

第四步:验证 PATH
在命令提示符中,输入以下命令来查看当前 PATH:
  1. echo %PATH%
复制代码

检查输出中是否包含 D:\anaconda3D:\anaconda3\Scripts。如果没有,请重复第一步。

额外提示
- 如果你安装了多个 Python 版本,可能会冲突。确保 Anaconda 的路径在 PATH 中优先级较高。
- 如果问题持续,尝试重新安装 Anaconda,并确保在安装过程中勾选“Add Anaconda to my PATH environment variable”选项。

一旦 Python 命令正常工作,你就可以在终端中运行你的脚本了。例如:
  1. python ex13.py first second third
复制代码


希望这能解决问题!如果还有疑问,请随时追问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 15:37 | 显示全部楼层
FishC 发表于 2025-10-31 15:29
你好!关于在终端中运行 `python --version` 无反应的问题,这通常是因为 Python 没有正确添加到系统 P ...

OK,问题解决,谢谢了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 15:37 | 显示全部楼层
凊风 发表于 2025-10-31 15:37
FishC 发表于 2025-10-31 15:29
你好!关于在终端中 ...


不客气,很高兴能帮到你!如果以后在学习中遇到其他问题,随时欢迎来提问~加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-1 11:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表