繁体   English   中英

如何在Mac OS X中从终端运行我的python脚本而无需键入完整路径?

[英]How can I run my python script from the terminal in Mac OS X without having to type the full path?

我在Mac OS 10.6 Snow Leopard上,我正在尝试在我的PATH变量中添加一个目录,这样我就可以在终端提示符下输入:python alarm.py来编写一个小脚本。

我把路径放在我的.profile文件中,它似乎出现在我回显$ PATH时,但是python仍然无法找到我放在该目录中的脚本。

这是我的主目录中的.profile文件的内容:

~ toby$ vim .profile 
export PATH=/Users/tobylieven/Documents/my_scripts:$PATH

这是echo $ PATH的输出,其中一切看起来都很好:

~ toby$ echo $PATH
/Users/tobylieven/Documents/my_scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

这是我正在尝试运行的脚本:

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
-rwxrwxrwx@ 1 tobylieven  staff  276 17 Jan 21:17 alarm.py

这是我试图用来运行脚本的命令和我得到的失败消息:

~ toby$ python alarm.py 
python: can't open file 'alarm.py': [Errno 2] No such file or directory

如果有人知道我可能做错了什么,那就太好了。 非常感谢。

PATH仅适用于可执行文件,不适用于python脚本。 将以下内容添加到Python脚本的开头:

#!/usr/bin/env python

并运行

sudo chmod a+x /Users/tobylieven/Documents/my_scripts/alarm.py

然后,您可以键入alarm.py来执行您的程序。

更改alarm.py包括:

#!/bin/python

作为文件中的第一行。

(或者/ usr / bin / python,取决于你的python解释器所在的位置。你可以通过输入:终端中的which python来解决这个问题。)

然后你可以运行alarm.py而不是python alarm.py

例如:

~ toby$ alarm.py  

而在几秒钟内击败我的phihag是对的,你需要将执行权限(通过chmod)添加到alarm.py.

您需要修改Python特定的路径变量:PYTHONPATH。

所以:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts

应该让你工作。

请参阅: Python模块搜索路径

你针对哪个python?

你用brew安装了吗? 它使用不同的路径。

which python3which python

选择你想要的那个

复制该输出

将其粘贴到python文件的顶部

加一个#! 在那条路的前面所以它看起来像

#!/usr/local/bin/python3

确保更改文件权限

chmod +x filename

将该文件放在路径中的文件夹中

不确定您的文件夹是否在您的路径中?

echo $path

如何将该文件夹添加到您的路径?

首先找到你的路径

echo $HOME

如果你使用bash或zsh,你可能会有这样的东西

~/.bash_profile~/.bashrc或文件底部的~/.zshrc

export PYTHON_UTILS="$HOME/code/python/utils"

export PATH="$PYTHON_UTILS:$PATH"

考虑从文件中删除.py ,在这种情况下不需要它

关闭并打开您的终端,该终端通过其路径获取文件

现在你应该能够像对待bash命令一样处理你的python文件

您不需要使用python3 filename.py来运行该文件,您只需使用filename

从文件系统的任何位置!

我真正在OS X上遇到的一些感兴趣的东西,就是你很难获得当前脚本的目录。

我找到了这个。

#! /bin/zsh 
cd "${0:h}"  

现在你可以执行一个相对于执行脚本的python文件,而不必知道你的python文件的确切路径。 这可能会有所帮助,也可能没有帮助,但我会使用它来使我的脚本和.command文件更好地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM