【问题标题】:How can I run my python script from the terminal in Mac OS X without having to type the full path?如何在 Mac OS X 中从终端运行我的 python 脚本而无需输入完整路径?
【发布时间】:2011-06-10 17:22:50
【问题描述】:

我使用的是 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

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

【问题讨论】:

    标签: python macos path terminal


    【解决方案1】:

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

    所以:

    export PYTHONPATH=/Users/tobylieven/Documents/my_scripts
    

    应该让你工作。

    见:Python Module Search path

    【讨论】:

      【解决方案2】:

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

      #!/usr/bin/env python
      

      然后运行

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

      然后,您只需键入 alarm.py 即可执行您的程序。

      【讨论】:

      • 太棒了!有用 :)。非常感谢:D。让人们知道,你在 macbook pro 上按 alt+3 输入“#”。
      【解决方案3】:

      更改alarm.py 以包含:

      #!/bin/python
      

      作为文件的第一行。

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

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

      例如:

      ~ toby$ alarm.py  
      

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

      【讨论】:

        【解决方案4】:

        在来自 Window 的 OS X 上,我真正感到困惑的是,您很难获得当前脚本的目录。

        我找到了这个。

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

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

        【讨论】:

          【解决方案5】:

          你的目标是哪条蟒蛇?

          你是用 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

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

          【讨论】:

            猜你喜欢
            • 2014-07-25
            • 2016-01-10
            • 1970-01-01
            • 2013-07-17
            • 2013-09-04
            • 2022-06-11
            • 2015-05-27
            • 2020-04-01
            • 2018-01-08
            相关资源
            最近更新 更多