How to include and install local dependencies in setup.py in Python?

后端 未结 3 1160
隐瞒了意图╮
隐瞒了意图╮ 2020-12-06 16:54

I am creating a setup.py to distribute my application. This application has a number of dependencies which can be installed via pip, it also has some custom

相关标签:
3条回答
  • 2020-12-06 16:55

    Extending wiesiu_p's answer, you can install the dependency by linking to its source directory, which has its own setup.py.

    Assume you have the source files of your dependency my-dependency, and the root of my-dependency has its own setup.py. In your application's setup.py:

    setup(
      ...,
      install_requires=['other-dependency','my-dependency'],
      dependency_links=[
        # location to your my-dependency project directory
        ''.join(['file:\\', os.path.join(os.getcwd(), 'path', 'to', 'my-dependency#egg=my-dependency-1.0')])
      ]
    )
    

    Now if you run python setup.py install with your application's setup.py, it will install my-dependency.

    0 讨论(0)
  • 2020-12-06 16:58

    There are several options that you can choose from:

    1. Upload your package to some server, and provide the URL with dependency_links.
    2. You could put your python package inside of your my_app package and link it with packages parameter, instead of using the wheel file.
    3. A more hacky way would be to use the setuptools api, and install the package by yourself.
    0 讨论(0)
  • 2020-12-06 17:22

    it is possible but not sure what setuptools version you should use. steps:

    in setup.py

    setup(
      ...,
      install_requires=['my-package'],
      dependency_links=[
        # location to your egg file
        os.path.join(os.getcwd(), 'deps', 'my_package-1.0.0-py3.5.egg')
      ]
    )
    

    important thing is that your location should not pass URL pattern test and egg file name should have structure <package_name_with_no_hyphens>-<version>-<py_version>.egg

    0 讨论(0)
提交回复
热议问题