setup.py并将文件添加到/ bin /

Aar*_*ken 59 python

我无法弄清楚如何使setup.py添加一个纸条给用户/bin或/usr/bin或什么的.

例如,我想将添加myscript.py到/usr/bin,使得用户可以调用myscript.py从任何目录.

Dat*_*eed 57

考虑使用console_scripts:

from setuptools import setup
setup(name='some-name',
      ...
      entry_points = {
              'console_scripts': [
                  'command-name = package.module:main_func_name',                  
              ],              
          },
)
Run Code Online (Sandbox Code Playgroud)

main_func_name主模块中的主要功能在哪里.command-name是一个名称,用于保存在/ usr/local/bin /中(通常)

  • 如果您正在运行“pip3 install --editable .”,它将安装到“/home/{username}/.local/bin”的命令中。如果你运行 `sudo pip3 install --editable .` 它将把命令安装到 `/usr/local/bin/` (2认同)

mik*_*iku 27

Python文档在安装脚本部分解释了它.

脚本是包含Python源代码的文件,旨在从命令行启动.

setup(...,
      scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
)
Run Code Online (Sandbox Code Playgroud)

  • aharon,根据您安装3.1的方式,您可能必须更改`PATH`以使其bin目录中的脚本正常运行.请参阅[此答案](http://stackoverflow.com/questions/3487664/getting-python-under-control-on-os-x-setting-up-environment-and-libraries/3489922#3489922)上一个问题有关这样做的说明. (3认同)
  • 这似乎将文件放入Python的bin目录中(在我的Mac的/ opt / local / Library / Frameworks / Python.framework / Versions / 3.1 / bin /`中),但我仍然无法运行它们。 (2认同)

Dan*_*sio 16

有两种方法可以从setuptools和PyPI基础结构中获取有效的命令行工具:

  1. "脚本"关键字参数
    这允许命令行执行您想要的一切,它可以是Python脚本,shell脚本或完全不同的东西.
  2. "console_scripts"入口点
    这允许Python函数(而不是脚本!)直接注册为命令行可访问工具.


wh1*_*ney 13

如果你愿意构建和安装整个python包,我就会这样做:

  • 编辑setup.py中的setup()函数以包含名为scripts的参数,并将其参数设置为您希望从任何位置运行的文件的位置.例如

setup(name='myproject',author='',author_email='',scripts=['bin/myscript.py'])

  • 在包含setup.py的目录中,通过键入来创建bin目录 mkdir bin
  • 将myscript.py添加到这个新创建的bin目录中(并确保它是可执行的!)
  • cd 再次进入包含setup.py的目录,并通过键入来安装整个python包 python setup.py install
  • 安装软件包后,您应该能够从系统的任何位置运行myscript.py!