如何使用自己的命令行名称(如myscript)运行Python脚本,而无需在终端中执行python myscript.py?参见:./xx.py: line 1: import: command not found。
myscript
python myscript.py
a0zr77ik1#
1.在脚本的顶部添加一个shebang行:#!/usr/bin/env python1.将脚本标记为可执行:chmod +x myscript.py1.将包含它的目录添加到PATH变量中(如果你想保留它,你必须在你的主目录中的.bashrc或.bash_profile中这样做)。export PATH=/path/to/script:$PATH
#!/usr/bin/env python
chmod +x myscript.py
PATH
.bashrc
.bash_profile
export PATH=/path/to/script:$PATH
ugmeyewa2#
最好的方法是创建setup.py,在其中定义一个入口点,然后使用pip安装。假设你有以下myscript.py的内容:
setup.py
pip
myscript.py
def run(): print('Hello world')
然后添加setup.py,如下所示:
from setuptools import setup setup( name='myscript', version='0.0.1', entry_points={ 'console_scripts': [ 'myscript=myscript:run' ] } )
入口点格式为terminal_command_name=python_script_name:main_method_name最后使用以下命令安装。
terminal_command_name=python_script_name:main_method_name
pip install -e /path/to/script/folder
-e代表editable,这意味着您将能够处理脚本并调用最新版本,而无需重新安装之后,您可以从任何目录运行myscript。
-e
2jcobegt3#
我通常在剧本中这样做:
#!/usr/bin/python ... code ...
在终端:
$: chmod 755 yourfile.py $: ./yourfile.py
whlutmcx4#
另一个相关的解决方案,有些人可能会感兴趣。人们也可以直接嵌入www.example.com的内容myscript.py到Linux上的.bashrc文件中(我认为也应该适用于MacOS)例如,我在我的.bashrc中定义了以下函数,用于将Python pickle转储到终端,请注意${1}是函数名称之后的第一个参数:
${1}
depickle() { python << EOPYTHON import pickle f = open('${1}', 'rb') while True: try: print(pickle.load(f)) except EOFError: break EOPYTHON }
有了这些(在重新加载.bashrc之后),我现在可以从计算机上的任何终端或目录运行depickle a.pickle。
depickle a.pickle
kpbpu0085#
我想到的最简单的方法是使用“pyinstaller”。1.创建一个包含所有你在代码中使用的库的环境。1.激活环境并在命令窗口中写入pip install pyinstaller1.使用命令窗口打开代码www.example.com所在的主目录maincode.py。1.记住保持环境活动并写入pyinstaller maincode.py1.检查名为“build”的文件夹,您将找到可执行文件。我希望这个解决方案对你有帮助。GL
pip install pyinstaller
pyinstaller maincode.py
hvvq6cgz6#
如果脚本是由使用Nssm工具创建的服务运行的,我已经为找不到命令py -3或任何其他与pylauncher命令相关的问题挣扎了几天。但是当直接从cmd运行时,相同的命令也可以工作。解决方案是什么?只需重新运行Python安装程序,并在最后单击选项以禁用路径长度限制。我就把它放在这里,这样任何人都可以使用这个答案,并发现它很有帮助。
Nssm
py -3
cmd
6条答案
按热度按时间a0zr77ik1#
1.在脚本的顶部添加一个shebang行:
#!/usr/bin/env python
1.将脚本标记为可执行:
chmod +x myscript.py
1.将包含它的目录添加到
PATH
变量中(如果你想保留它,你必须在你的主目录中的.bashrc
或.bash_profile
中这样做)。export PATH=/path/to/script:$PATH
ugmeyewa2#
最好的方法是创建
setup.py
,在其中定义一个入口点,然后使用pip
安装。假设你有以下
myscript.py
的内容:然后添加
setup.py
,如下所示:入口点格式为
terminal_command_name=python_script_name:main_method_name
最后使用以下命令安装。
-e
代表editable,这意味着您将能够处理脚本并调用最新版本,而无需重新安装之后,您可以从任何目录运行
myscript
。2jcobegt3#
我通常在剧本中这样做:
在终端:
whlutmcx4#
另一个相关的解决方案,有些人可能会感兴趣。人们也可以直接嵌入www.example.com的内容myscript.py到Linux上的.bashrc文件中(我认为也应该适用于MacOS)
例如,我在我的.bashrc中定义了以下函数,用于将Python pickle转储到终端,请注意
${1}
是函数名称之后的第一个参数:有了这些(在重新加载.bashrc之后),我现在可以从计算机上的任何终端或目录运行
depickle a.pickle
。kpbpu0085#
我想到的最简单的方法是使用“pyinstaller”。
1.创建一个包含所有你在代码中使用的库的环境。
1.激活环境并在命令窗口中写入
pip install pyinstaller
1.使用命令窗口打开代码www.example.com所在的主目录maincode.py。
1.记住保持环境活动并写入
pyinstaller maincode.py
1.检查名为“build”的文件夹,您将找到可执行文件。
我希望这个解决方案对你有帮助。GL
hvvq6cgz6#
如果脚本是由使用
Nssm
工具创建的服务运行的,我已经为找不到命令py -3
或任何其他与pylauncher命令相关的问题挣扎了几天。但是当直接从
cmd
运行时,相同的命令也可以工作。解决方案是什么?只需重新运行Python安装程序,并在最后单击选项以禁用路径长度限制。
我就把它放在这里,这样任何人都可以使用这个答案,并发现它很有帮助。