gpt4 book ai didi

python - 无法在 Powershell 中找到或运行我的脚本

转载 作者:行者123 更新时间:2023-12-01 00:29:39 25 4
gpt4 key购买 nike

我正在做“以困难的方式学习 Python”的练习 14,并且我已经写出了我的源代码,但我似乎无法在 PyCharm 或 Powershell 的控制台中运行该脚本。我不知道如何使用,而且很迷失。

我尝试打开 PowerShell 并将文件的目录粘贴到其中,但我得到的只是一个错误

PS C:\Users\avalo> F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH ex14.py
F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH : The term
'F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1
+ F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH ex14.p ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (F:\Python_Proje...excercises\LPTH:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

我不知道这意味着什么。您可以在下面找到我的源代码。

from sys import argv

script, user_name = argv
prompt = '> '

print(f"Hi {user_name}, I'm the {script} scrpit.")
print("I'd like to ask you a few questions")
print(f"Do you like me {user_name}?")
likes = input(prompt)

print(f"Where do you live {user_name}?")
lives = input(prompt)

print("What kind of computer do you have?")
computer = input(prompt)

print(f"""
Alright, so you said {likes} about liking me.
You live in {lives}. Not sure where that is.
And you have a {computer} computer, Nice.
""")

当我尝试在 PyCharm 中运行脚本时,出现错误 -

Traceback (most recent call last):
File "C:/Users/avalo/PycharmProjects/LPTH Excercises/venv/LPTH ex14.py", line 3, in <module>
script, user_name = argv
ValueError: not enough values to unpack (expected 2, got 1).

最佳答案

让我们看看命令和错误消息:

PS C:\Users\avalo> F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH ex14.py
F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH : The term
'F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.

因此,您在 Powershell 提示符中输入了 F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH ex14.py。 Powershell 尝试理解用户输入,但无法做到这一点。你看,Powershell 认为只有一个命令和一个参数 - 因为有一个空格。因此,Powershell的推理是这样的,

尝试执行F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH并将 ex14.py 作为参数传递给前面提到的 LPTH。

这没有多大意义,而且不存在F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH这样的东西。这就是为什么错误消息显示它未被识别为 cmdlet、函数的名称,脚本文件,或者可运行的程序。

这种行为并不是 Powershell 自己的怪癖。 Cmd shell、Bash 和许多其他需要特殊的解决方法来处理包含空格的文件名。

要解决此问题,您需要使用引号告诉 shell 空格是文件名的一部分,而不是分隔符。此外,您应该将路径作为参数传递给 python。实际路径取决于您的设置,但它是类似的

& 'C:\Program Files (x86)\Python37-32\python' 'F:\Python_Projets\Learning_Python_the_hard_way_excercises\LPTH ex14.py'

& 是调用运算符,它将执行 python.exe。请注意,参数 .py 文件用单引号引起来,因此空格将作为文件名包含在内。

这个故事的寓意:避免文件名中出现空格,除非您仅使用 GUI 工具。可以使用下划线 _ 代替空格以保持可读性。像 LPTH_ex14.py 这样的文件名不需要任何引号。

关于python - 无法在 Powershell 中找到或运行我的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58276158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com