【问题标题】:Python - install script to systemPython - 将脚本安装到系统
【发布时间】:2015-05-29 02:53:03
【问题描述】:

如何为自己的脚本制作 setup.py 文件?我必须使我的脚本全球化。 (将它添加到 /usr/bin)所以我可以从控制台运行它,只需输入:scriptName 参数。 操作系统:Linux。 编辑: 现在我的脚本是可安装的,但我怎样才能让它全球化?这样我就可以从控制台运行它,只需输入名称即可。

【问题讨论】:

    标签: python installation


    【解决方案1】:

    我知道这个问题已经很老了,但以防万一,我发布了我是如何为自己解决问题的,即想为 PyPI 设置一个包,当使用pip 安装它时,会安装它作为一个系统包,不仅仅适用于 Python。

    setup(
        # rest of setup
        console_scripts={
            'console_scripts': [
                '<app> = <package>.<app>:main'
            ]
        },
    )
    

    Details

    【讨论】:

    • &lt;package&gt; 应列在 其余设置 部分的 packages 关键字参数中
    【解决方案2】:

    编辑:此答案仅涉及将可执行脚本安装到/usr/bin。我假设您对 setup.py 文件的工作原理有基本的了解。

    创建您的脚本并将其放置在您的项目中,如下所示:

    yourprojectdir/
        setup.py
        scripts/
            myscript.sh
    

    在您的 setup.py 文件中执行以下操作:

    from setuptools import setup
    # you may need setuptools instead of distutils
    
    setup(
        # basic stuff here
        scripts = [
            'scripts/myscript.sh'
        ]
    )
    

    然后输入

    python setup.py install
    

    基本上就是这样。您的脚本有可能不会完全落在/usr/bin 中,而是在某个其他目录中。如果是这种情况,请键入

    python setup.py install --help
    

    然后搜索--install-scripts参数和好友。

    【讨论】:

    • 好吧,我照你说的做了。但运行后: setup.py install 我得到:
      错误:文件'/home/ockonal/workspace/scripts/getkey.py'不存在
    • 好的,我已经让我的脚本可以安装了,但是我怎样才能让它全球化呢?我无法从控制台运行它,只需输入名称即可。
    • 是的,现在我的脚本在 /usr/bin 中。我试着做:chmod +x /usr/bin/scriptname.py。但在那之后仍然有:comand not found for my script name in console.
    • 我想到的唯一另一件事是检查您的路径。尝试将您的脚本作为 /usr/bin/scriptname.py 运行。如果这有效,但键入 scriptname.py 无效,那么它是关于 PATH 的。此外,请仔细检查您的脚本在第一行中是否有 #!/usr/bin/python。
    • 注意 unix-land 文件后缀是名称的一部分。也就是说, foo.py 和 foo 是不同的文件。命令处理器不知道后缀(这就是 #! 的全部意义所在)。因此,如果您希望人们只需要输入“foo”而不是“foo.py”,那么将文件命名为“foo”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多