setup.py and adding file to /bin/

后端 未结 4 1502
你的背包
你的背包 2020-12-07 15:42

I can\'t figure out how to make setup.py add a scrip to the the user\'s /bin or /usr/bin or whatever.

E.g., I\'d like to add a

相关标签:
4条回答
  • 2020-12-07 15:58

    Consider using console_scripts:

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

    Where main_func_name is a main function in your main module. command-name is a name under which it will be saved in /usr/local/bin/ (usually)

    0 讨论(0)
  • 2020-12-07 15:58

    If you're willing to build and install the entire python package, this is how I would go about it:

    • Edit the setup() function in setup.py to contain a parameter named scripts and set its argument as the location of the file(s) you wish to run from anywhere. e.g.

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

    • Within the directory that contains setup.py, create a bin directory by typing mkdir bin
    • Add myscript.py to this newly-created bin directory (and make sure it's executable!)
    • cd into the directory that contains setup.py again, and install the entire python package by typing python setup.py install
    • Once the package is installed, you should be able to run myscript.py from anywhere on the system!
    0 讨论(0)
  • 2020-12-07 16:01

    The Python documentation explains it under the installing scripts section.

    Scripts are files containing Python source code, intended to be started from the command line.

    setup(...,
          scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
    )
    
    0 讨论(0)
  • 2020-12-07 16:22

    There are two ways in order to get a working command line tool from setuptools and PyPI infrastructure:

    1. The "scripts" Keyword Argument
      This allows the command-line execution of everything you want, it can be a Python script, a shell script or something completely different.
    2. The "console_scripts" Entry Point
      This allows Python functions (not scripts!) to be directly registered as command-line accessible tools.
    0 讨论(0)
提交回复
热议问题