我刚刚将Python 3.2下载到Mac OS 10.6环境。我是编程的新手,我正在尝试运行我的第一个独立的.py文件,但我不断收到一条错误消息“没有这样的目录或文件”。该文件的名称是“script1.py”,我将其保存到/ Users / billp / Documents。当我打开终端运行文件时,我输入:
python script1.py
我也尝试将此行添加到脚本的开头:
#!/usr/local/bin/python
以及这一个:
#!/usr/bin/env python
然而,我一直收到同样的错误信息。任何帮助将不胜感激。
答案 0 :(得分:7)
打开终端后,请确保您位于正确的工作目录中。型
cd /Users/billp/Documents/
(使用标签自动填充)
然后
python ./script1.py
这样你就可以启动python可执行文件并将它作为第一个参数传递给你的文件。您提到的shebang #!
行允许您直接启动脚本,如下所示:./script1.py
,但您需要将文件标记为可执行chmod +x script1.py
并提供解释器(python)的路径shebang。 #!/usr/bin/env python
引用了您的默认python安装。
./
代表当前目录。默认情况下,当您键入script1.py
时,您的shell(通过终端键入命令的内容)将在PATH
env变量中列出的特殊文件夹中查找可执行文件。通常不会script1.py
,因此您会看到-bash: script1.py: command not found
。另一方面,python
位于PATH
,因此它应该有效。
答案 1 :(得分:4)
也许你忘了让文件可执行?在命令提示符处尝试:
$ 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
答案 2 :(得分:0)
你的python二进制文件在这里吗?
/Library/Frameworks/Python.framework/Versions/3.2/bin/python
答案 3 :(得分:0)
值得指出的是,只要文件在当前目录中,它就会自动可用。否则,必须使用完整路径信息绝对引用任何文件。
以下示例调用同一个文件:
明确(绝对路径)
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
只要您处理同一目录中的文件(通常称为工作目录),您就可以始终安全地使用相对路径。如果文件位于其他任何位置,则必须始终指定绝对路径。