linux 如何从终端运行已安装的python包

k5ifujac  于 2023-03-07  发布在  Linux
关注(0)|答案(2)|浏览(172)

我有一个类似这样的python代码

wallpaper/
   setup.py
   wallpaper/
      __init__.py
      environments.py
      run.py

run.py有这样一个函数:

import environments

def main():
   .. do something()
if __name__=='__main__':
   main()

安装这个软件包后,我如何run.py在我的终端上执行www.example.com脚本。我知道这个问题以前有人问过,但我不满意这个答案,因为它没有给我任何见解。

r6vfmomb

r6vfmomb1#

你想

python -m wallpaper.run

这依赖于正确设置PYTHONPATH;你可能需要到重新启动你的终端如果这软件包是刚刚安装在一个新的目录.

btxsgosb

btxsgosb2#

要从命令行运行www.example.com文件中的main函数run.py,您需要在www.example.com文件中设置entry_points选项setup.py,这可以通过添加以下代码来完成:

setup(
    OTHER_SETTINGS,
    entry_points={"console_scripts": ["youcmd= wallpaper.run:main"]},
)

这段代码创建了一个名为youcmd的可执行脚本,当从命令行调用wallpaper.run模块时,该脚本将运行wallpaper.run模块中的main函数。要运行此脚本,只需打开一个新终端并输入youcmd
如果您不熟悉entry_points(请参阅this answer和本文档),这是一种定义命令的方法,可以在安装软件包后从命令行运行。通过指定entry_points并将“console_scripts”作为键,你可以创建可执行的脚本来运行你的包中的函数。如果您想让您的包易于从命令行访问,而用户不必手动导航到包目录并自己运行文件,则此选项非常有用。
作为一个真实的例子,您可以 checkout 开源项目fast-entry_points的setup.py文件。

相关问题