Can';t在Mac上从终端运行Python.py文件

Can';t在Mac上从终端运行Python.py文件,python,Python,我刚刚将Python3.2下载到MacOS10.6环境。我是编程新手,正在尝试运行我的第一个独立的.py文件,但我不断收到一条错误消息,说“没有这样的目录或文件”。文件名为“script1.py”,我将其保存到/Users/billp/Documents。当我打开终端运行文件时,我键入: python script1.py 我还尝试将这一行添加到脚本的开头: #!/usr/local/bin/python 除了这个: #!/usr/bin/env python 然而,我一直收到相同的错误消

我刚刚将Python3.2下载到MacOS10.6环境。我是编程新手,正在尝试运行我的第一个独立的.py文件,但我不断收到一条错误消息,说“没有这样的目录或文件”。文件名为“script1.py”,我将其保存到/Users/billp/Documents。当我打开终端运行文件时,我键入:

python script1.py
我还尝试将这一行添加到脚本的开头:

#!/usr/local/bin/python
除了这个:

#!/usr/bin/env python

然而,我一直收到相同的错误消息。如果有任何帮助,我们将不胜感激。

也许您忘了将文件设置为可执行文件?在命令提示下尝试以下操作:

$ chmod +x script1.py
我更喜欢在Mac中使用以下行启动Python脚本(当然,假设您以UTF-8编码保存文件:

#!/usr/bin/env python
#coding=utf-8
另外,请确保路径中有
python
命令。如果所有设置都正确,则无需首先键入
python
,您可以通过在脚本所在的目录中键入
/script1.py
直接运行脚本

最后一件事,为了在从命令行执行脚本时运行一段代码(而不是简单地在文件中加载定义),请在结尾处编写以下内容:

if __name__ == '__main__':
    # the code you want to call

您的python二进制文件在这里吗

/Library/Frameworks/Python.framework/Versions/3.2/bin/python

打开终端后,确保您在正确的工作目录中。键入

cd /Users/billp/Documents/
(使用选项卡自动完成)

然后

通过这种方式,您可以启动python可执行文件并将其路径作为第一个参数传递给您的文件。您提到的shebang
#!
行允许您直接启动脚本,如下所示:
/script1.py
,但您需要将文件标记为可执行文件
chmod+x script1.py
,并提供解释器(python)的路径在shebang之后。
#!/usr/bin/env python
引用默认的python安装


/
代表当前目录。默认情况下,当您键入shell时(通过终端将命令键入shell中)将在
PATH
env变量中列出的特殊文件夹中查找可执行文件。
script1.py
通常不在那里,因此您会看到
-bash:script1.py:command not found
python
,另一方面,它位于
路径上,因此应该可以工作。

只要文件在您当前的目录将自动可用。否则,任何文件都必须使用完整的路径信息进行绝对引用

因此,以下示例调用同一个文件:

显式(绝对路径)

隐式(相对路径)


只要您使用同一目录(通常称为您的工作目录)中的文件,您可以始终安全地使用相对路径。如果文件位于其他任何位置,则必须始终指定绝对路径。

您可以将错误作为一个整体显示给我们吗?当您在提示下键入
python
时会发生什么情况?您是否获得了解释器?请记住,您必须
cd
到正确的目录,即
cd/Users/billp/文档
。或者您可以执行
python/Users/billp/Documents/script1.py
。以下是整个错误:
python:无法打开文件'script1.py':[Errno 2]没有这样的文件或目录william peirces mac pro:~billp$
当我在提示下键入
python时,我得到以下信息:
python 2.6.1(r261:67515,2010年6月24日,21:47:49)[GCC 4.2.1(Apple Inc.build 5646)]关于达尔文类型的“帮助”、“版权”、“信用证”或“许可证”更多信息。>>>
据我所知,我相信这是OS 10.6附带的Python的默认版本,当文件是Python本身的参数时,您不需要使其可执行。只有当您使用shebang运行它时,才需要执行。@Griffin:正确,您不需要。使其可执行并提供shebang是使我我的“python二进制文件”是什么您键入的路径存在,并且在bin文件夹中有几个文件,例如:2to3-3.2、idle3.2、pydoc3.2、python3、python3.2等。您的python二进制文件是python发行版附带的可执行代码。
python
是最重要的一个,但正如您所注意到的,
pydoc
等其他文件也存在于bin控制器中y、 SWEET!!它是在我指定目录后运行的。谢谢lormus。至于使用#!/usr/local/bin/python并用chmod+x将文件标记为可执行文件,我不确定我是否理解您的说明。如下所示:(哦,意外点击return)…至于使用
#!/usr/local/bin/python
并用
chmod+x
将文件标记为可执行文件,我不确定我是否理解您的说明。1)我包括
#行是我脚本中的第一行,2)我打开终端后在提示符处键入“./script.py”,3)我用
chmod+x script1.py将文件标记为可执行文件
——我该怎么做?何时/何地键入该命令?顺便说一句,谢谢你在解释中如此基本和描述性——这非常有帮助。切换2)和3):)。在终端键入
chmod+xscript1.py
,它将文件标记为可执行文件,而不是普通数据文件。(在Windows world extension.exe中也是这么说的,这里是“执行位”),然后您可以使用
/script1.py
启动该文件。我仍然无法使该文件作为可执行文件工作。同样,我的脚本的第一行如下:
#/usr/local/bin/python
下面是我的终端条目的样子
william peirces mac-pro:~billp$cd/Users/billp/Documents/william peirces mac-pro:Documents billp$chmod+x brian.py william peirces mac-pro:Documents billp$./brian.py-bash:./brian.py:/usr/local/bin/python:bad解释器:没有这样的文件或目录
脚本中的Python路径可能有问题吗?我自己安装了3.2
python ./script1.py
python /Users/billp/Documents/script1.py
python /Users/billp/Documents/script2.py
python /Users/billp/Documents/script3.py
cd /Users/billp/Documents
python script1.py
python script2.py
python script3.py