Can';t在Mac上从终端运行Python.py文件
我刚刚将Python3.2下载到MacOS10.6环境。我是编程新手,正在尝试运行我的第一个独立的.py文件,但我不断收到一条错误消息,说“没有这样的目录或文件”。文件名为“script1.py”,我将其保存到/Users/billp/Documents。当我打开终端运行文件时,我键入: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 然而,我一直收到相同的错误消
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