名称错误:名称“ls”未定义。

3

我正在使用Windows 7,并刚刚安装了Python 2.7.4,但我只收到SyntaxError:'s的信息。例如,当我输入以下命令时:

>>>ls   

I get

Traceback (most recent call last):
  file "<stdin>", line 1, in <module>
NameError: name 'ls' is not defined.

我刚接触Python,对问题一无所知。数学计算似乎工作正常,但像cdlssudo apt-get update(和upgrade)等命令不起作用。如果有指导,将不胜感激。


1
ls 应该是什么? - Padraic Cunningham
3
为什么你认为像lscdsudo apt-get update这样的命令应该在Python中起作用?那些不是Python命令,而是Linux命令。 - Martijn Pieters
你似乎把Debian或Ubuntu Linux系统和Python混淆了。 - Martijn Pieters
你可以在Windows中使用ls(类似于Linux的用法),但不要在Python中这样做。 - ROMANIA_engineer
也许你想尝试ipython http://ipython.org - Mauro Baraldi
5个回答

10

很遗憾你在这里被投票踩得很重。如果你是编程新手,这可能是一个诚实的错误,因为很多教程都假定你已经熟悉命令行。

主要问题(正如其他人指出的那样)是区分操作系统shell(也称为控制台、终端、命令行或命令提示符)和Python shell

操作系统shell/命令提示符是你可以与计算机交互的基本方式之一。打开命令提示符后,你可以通过输入程序名称来运行任意程序,运行命令例如lssudocdapt-get

例如,如果你键入python,它会导致命令提示符启动Python shell。从那里,你可以像往常一样运行所有的Python命令。然而,这是一个完全独立的程序,具有完全独立的规则。你在命令提示符中可以做的事情在Python中不起作用,反之亦然。


现在,另一个混淆点是区分Windows命令提示符和Linux命令提示符。你可以在两者中都安装和运行Python,但某些命令(特别是sudoapt-get)仅适用于Linux操作系统。不幸的是,使用Windows命令提示符和Linux命令提示符的规则有所不同,这意味着你找到的一些说明只适用于一种操作系统。


所以难怪你会感到困惑!你正试图学习Python,但很多教程/文章会提到第二个完全不同的系统,却几乎没有介绍,并且期望你已经知道如何使用它。

如果你想了解更多有关使用命令行的内容,这里有一份不错的速成课程可供参考。它将教授你在所有三个主要操作系统(Windows、Linux和Mac)中所需了解的知识,并希望能够使你在网上阅读的内容更加清晰。

谢谢,我感谢你的意见。 - Diane

2
我从您的个人资料中了解到您正在学习树莓派。树莓派可以使用Debian(或基于Debian的Ubuntu)作为Linux发行版。您在Python中尝试的命令是要在该操作系统上运行的shell命令。
Python是另一个可以在树莓派上运行的命令,但这并不意味着在Windows上安装Python也会给您在Windows上使用这些其他命令。您在这里混淆了两个完全不同的东西。

谢谢,我很感激你的意见。 - Diane

0
这些只是像 cd、ls、sudo apt-get update (和 upgrade) 这样的命令。任何指导都将不胜感激。
Python 并不支持这些命令。它们是操作系统级别的命令,而不是 Python 级别的命令。

谢谢,我很感激你的建议。 - Diane

0
我的问题根源在于我没有问正确的问题。我试图在交互模式下运行脚本,并输入“ls”和“dir”来查看当前目录。在大家的指导下,我最终在文档中找到了关于可执行Python脚本的部分,该部分表示Windows自动将“py”扩展名与python.exe相关联。这里。然后我就豁然开朗了。我将“py”扩展名与我的编辑器相关联,而不是与python相关联,我应该在Windows命令提示符下操作。感谢大家的帮助和快速响应。

0

上面的答案是正确的,但它们并不能帮助您解决问题!

在Python中可行的一个解决方案是:

%ls

答案不清楚,请修改您的答案并添加一些解释。 - Azhar Khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接