在Ubuntu中创建执行python脚本的终端名称



我在'/home/username/scripts/pyscript'中有一个python文件,我想设置一个单词来直接执行这个脚本。

我想这样做"python3/home/username/scripts/pyscript/main.py arg1 arg2";但看起来这个";myscript arg1 arg2";

这可能吗?无论如何,谢谢你。

它有多种可能。链接是Bash的,据说是你的外壳,但这些想法总是适用的。

第一个选项:制作一个shell别名

alias myscript='python3 /home/username/scripts/pyscript/main.py'

请确保将别名添加到你的.profile中,使其在注销后仍然有效。

第二个选项:定义一个包装脚本。创建一个包含以下内容的文件,以您想要的命令(例如myscript(命名:

#!/bin/bash
python3 /home/username/scripts/pyscript/main.py "$@"

保存并使其可执行,然后调用它:

chmod +x myscript
./myscript arg1 arg2

请确保将脚本复制到PATH中的文件夹中(使用echo$PATH检查位置(,以便能够从任何文件夹调用它。

您还可以使用pyinstaller创建单个可执行文件:

步骤1:安装pyinstaller

[注意:最佳做法是在virutalenv]中执行此操作

$ pip install pyinstaller

步骤2:根据脚本运行pyinstaller

$ pyinstaller --console --onefile /home/username/scripts/pyscript
$ pyinstaller pyscript.spec  # use this after the first run

步骤3:测试生成的可执行

$ cd /home/username/scripts/dist  # generated by pyinstaller
$ pyscript arg1 arg2

步骤4:利用$PATH变量

$ cp /home/username/scripts/dist/pyscript /usr/bin

现在,您应该能够从任何位置运行可执行文件。

应该注意的是,生成的可执行文件是特定于操作系统的。例如,如果你在Ubuntu机器上生成它,它将只在Ubuntu(基于Debian(上运行。Windows和其他Linux发行版也是如此。

最后我在@pierpaciugo的帮助下求解我在.bashrc的末尾添加了一个别名,以使其持久化:

alias create='bash /home/username/Programming/Python/GithubAPI/script.sh'

我不能只使用别名,因为我的python依赖于虚拟环境,所以如果我尝试这样做,我就无法将params添加到我的python脚本中。

为此,我创建了这个bash脚本:

#!/bin/bash
source /home/username/Programming/Python/GithubAPI/venv/bin/activate && python3 /home/username/Programming/Python/GithubAPI/main.py $@ && deactivate

现在我可以写";创建param1 param2";它是有效的。我使用所有全局路径,但最好将脚本添加到PATH中的文件夹中。

最新更新