如何允许从所有目录访问文件?

2024-04-25 07:12:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,它是一个解释器,用于一种我自己制作的语言。它被称为cbc.py公司,并且它位于某个目录中。现在,我想知道怎么称呼它,以及系统argv参数(如python3)cbc.py公司_文件名\-TO \-RUN \)在任何目录中。我已经对.bashrc文件和PATH变量进行了研究,但是我找不到任何能真正帮助我解决问题的东西。有人能告诉我怎么解决我的问题吗?你知道吗


Tags: torunpy程序目录语言参数文件名
2条回答

您需要首先使脚本可执行,然后将其添加到路径中。 如果您的python脚本位于~/path/to/your/script/YOUR_SCRIPT_NAME

  • 在脚本顶部添加#!/usr/bin/python3
  • 使用sudo chmod a+x YOUR_SCRIPT_NAME为脚本授予可执行权限
  • 编辑~/.bashrc以添加脚本路径,例如echo PATH="$HOME/path/to/your/script:$PATH" >> ~/.bashrc
  • 重新启动或重新登录或运行source ~/.bashrc
  • 现在您可以通过YOUR_SCRIPT_NAME在任何地方访问脚本。你知道吗

不幸的是,除非cbc.py在某个目录中,否则无法从该目录轻松运行python3 cbc.py ...。但是您可以很容易地从任何目录运行cbc.py ...。你知道吗

编辑cbc.py,使第一行如下所示:

#!/usr/bin/env python3

(参考Should I put #! (shebang) in Python scripts, and what form should it take?

制造cbc.py公司可执行文件:

chmod +x cbc.py

现在您应该可以在不键入python3的情况下运行它,但还不能从任何目录运行:

./cbc.py ...

接下来,编辑~/.bashrc,使最后一行是:

export PATH:$PATH:...

在这里,代替...,将绝对路径放在包含cbc.py的目录中。你知道吗

一种标准的描述方式是:

export PATH:$PATH:<absolute path to your script's directory>

例如(取决于您的操作系统):

export PATH:$PATH:/home/caspian/cbcdir

或:

# this path has a directory with a space in it's name, so it must go in quotes
export PATH:$PATH:'/Users/CaspianAhlberg/Documents/Cbc Project'

或:

# this path has a directory with a space and a single quote in it's name,
# so it must go in double-quotes
export PATH:$PATH:"/Users/CaspianAhlberg/Documents/Cbc's Project"

或者,更荒谬的是:

# you can also "escape" funny characters using \ instead of
# wrapping the entire string in quotes
export PATH:$PATH:/cygdrive/c/Users/Documents/Cbc\ Project

长话短说,不要在目录或文件名中加空格或引号。你知道吗

现在开始一个新的bashshell并尝试cbc.py ...

相关问题 更多 >