【问题标题】:Python package additional namePython 包附加名称
【发布时间】:2019-12-08 04:46:22
【问题描述】:

我正在使用 setuptools 基于现有开源项目构建一个新的 PyPI package 并添加一些代码修改(它们不一样)。 示例:

opensource-custom=2.13.1

由于此项目需要查找 opensource 的依赖项 在构建我的 Wheel 文件时,我可以将哪些选项传递给我的 setup.py,这样当我执行 pip freeze/pip list 时,我可以同时看到两者?

opensource-custom=2.13.1
opensource=2.13.0

这个场景的一个例子是intel-numpy,如果你对它做一个pip install,它会生成一个numpy的副本。

>pip install intel-numpy
>pip freeze
icc-rt==2019.0
intel-numpy==1.15.1
intel-openmp==2019.0
mkl==2019.0
mkl-fft==1.0.6
mkl-random==1.0.1.1
numpy==1.15.1
tbb==2019.0
tbb4py==2019.0

【问题讨论】:

    标签: python pip setuptools pypi


    【解决方案1】:

    听起来您想让opensource 成为opensource-custom 的依赖项。为此,您可以在setup.py 中指定install_requires 参数:

    from setuptools import setup
    
    setup(
        name='opensource-custom',
        install_requires=[
            'opensource',
        ],
        ...
    )
    

    https://packaging.python.org/guides/distributing-packages-using-setuptools/#install-requires

    【讨论】:

    • 也许我需要澄清一下我构建了自己的 pypi 包 opensource-custom 并对其进行了一些修改,不会 install_requires 重新安装开源包吗?
    • 如果尚未安装,它将安装它。这就是让它出现在pip freeze 中的原因。
    • 知道了,谢谢你看到任何将包名复制到包管理器或 pip freeze 读取位置的选项吗?
    • 不,唯一的方法是安装该软件包。为什么要模仿其他包?会让用户非常困惑。
    猜你喜欢
    • 2015-02-18
    • 2014-12-01
    • 1970-01-01
    • 2015-03-18
    • 2011-02-12
    • 2014-09-26
    • 2017-07-31
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多