如何在 Python 的 setup.py 中包含和安装本地依赖项?

新手上路,请多包涵

我正在创建一个 setup.py 来分发我的应用程序。这个应用程序有许多可以通过 pip 安装的依赖项,它还有一些不能从 PyPI 安装的自定义依赖项。

因此,我创建了一个 custom_package_0.1.whl 它将包含在发行版中,并且必须在 setup.pyinstall_requires 安装所有内容后作为依赖项安装。

想象一下以下应用程序结构:

 my_app/
    win_deps/custom_package_0.1.whl
    my_app/
        __init__.py
        main.py
        setup.py
        setup.cfg

我怎么做?

原文由 minerals 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 882
2 个回答

有可能但不确定您应该使用哪个 setuptools 版本。脚步:

在 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')
  ]
)

重要的是你的位置不应该通过 URL 模式测试并且 egg 文件名应该有结构 <package_name_with_no_hyphens>-<version>-<py_version>.egg

原文由 wiesiu_p 发布,翻译遵循 CC BY-SA 4.0 许可协议

有一种新技术(从 19.1 版开始)称为 Direct references 。假装您的文件托管在本地主机上。

 from setuptools import setup

path_to_my_project = "/home/user/projects/my_package"  # Do any sort of fancy resolving of the path here if you need to

setup(# ... other arguments
      install_requires=[f"my_package @ file://localhost/{path_to_my_project}#egg=my_package"]
      )

原文由 RunOrVeith 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题