我有一个python程序,它是一个解释器,用于我所做的一种语言。它被称为 cbc.py,它位于某个目录中。现在,我想知道如何调用它,以及任何目录中的sys.argv参数(如python3 cbc.py _FILENAME_TO_RUN_(。我已经对 .bashrc 文件和 PATH 变量进行了研究,但我找不到任何真正帮助我解决问题的东西。有人可以告诉我如何解决我的问题吗?
不幸的是,除非cbc.py
位于目录中,否则您无法轻松地从目录中运行python3 cbc.py ...
。但是您可以轻松地从任何目录运行cbc.py ...
。
编辑cbc.py
,使第一行如下所示:
#!/usr/bin/env python3
(参考我应该放#!(shebang(在Python脚本中,它应该采取什么形式?
使 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
长话短说,不要在目录或文件名中放置空格或引号。
现在启动一个新的 bash shell 并尝试cbc.py ...
您需要先使脚本可执行,然后将其添加到 PATH 中。 如果你有你的 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
随时随地访问脚本。