提前为一个幼稚的问题道歉!我在这里做了一些调查,但仍然感到有点困惑。
我有一个python脚本,我想让它在bash shell中的任何地方都可以执行(就像如何 git
, homebrew
, neofetch
等都可以调用)。我用过 pyinstall
来制作可执行文件,但我不知道该怎么做。我试着把编译文件夹移到了 usr/local
并将可执行文件的别名放在了 usr/local/bin
但当我试图从shell中运行时,我得到了一个 "无法执行二进制文件 "的错误信息。urs/local/bin
的可执行文件,并看到该文件指向的是在 usr/local
.
有谁知道有什么建议,或者知道有什么好的资源来尝试和了解我做错了什么吗? 非常感谢!
对于一个简单的脚本,最简单的方法是简单地添加一个Python的 羊肠线,将脚本保存到你的目录中。PATH
(如 /usr/local/bin
),并设置脚本的可执行位。
例如
#!/usr/bin/python3
import sys
print('Hello, world! I am Python', sys.version)
保存为 /usr/local/bin/python-hello
其次 chmod u+x /usr/local/bin/python-hello
会让你执行 python-hello
从任何地方。
更复杂的脚本最好通过以下方式来执行 正确包装 妥帖 console_scripts
切入点 -- 虽然和PyInstaller一起打包的东西也能用,不过会重很多。
一个包含多个模块的脚本应该被组织成一个包,如
python_hello/
__init__.py
__main__.py
greetings.py
__main__.py
可以是这样的
def main():
# ...
if __name__ == "__main__":
main()
这样你就可以用 python -m python_hello
以及建立 python_hello.__main__:main
作为控制台脚本的入口点。