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

tob*_*ven 8 python macos terminal 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
Run Code Online (Sandbox Code Playgroud)

这是echo $ PATH的输出,其中一切似乎都很好:

~ toby$ echo $PATH
/Users/tobylieven/Documents/my_scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)

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

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
-rwxrwxrwx@ 1 tobylieven  staff  276 17 Jan 21:17 alarm.py
Run Code Online (Sandbox Code Playgroud)

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

~ toby$ python alarm.py 
python: can't open file 'alarm.py': [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

phi*_*hag 18

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

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

并运行

sudo chmod a+x /Users/tobylieven/Documents/my_scripts/alarm.py
Run Code Online (Sandbox Code Playgroud)

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


Mat*_*ogt 5

更改 alarm.py 以包括:

#!/bin/python
Run Code Online (Sandbox Code Playgroud)

作为文件中的第一行。

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

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

例如:

~ toby$ alarm.py  
Run Code Online (Sandbox Code Playgroud)

比我领先几秒的phihag是对的,你需要给alarm.py添加执行权限(通过chmod)。


jas*_*ard 5

你的目标是哪条蟒蛇?

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

which python3 或者 which 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从您的文件中删除bc 在这种情况下不需要

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

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

你不需要使用python3 filename.py来运行文件,你可以使用filename

从文件系统上的任何地方!