python - pip 安装我的 python 应用程序是否应该自动安装依赖项?

标签 python pip

我是 python 打包和分发的新手。我有一个 python 应用程序,我想 pip 安装,所以我为它创建了一个 setup.py 。

现在 setup.py 有 install_requires ,它会在缺少依赖项时发出警报,但我想知道我是否可以/应该提供一种自动安装缺少的依赖项的方法。目前该应用需要一个自研的共享包,无需外部包。

编辑:

我的setup.py:

from setuptools import setup

setup(
    name="TcpMonitor",
    version="1.0",
    packages=["tcpmonitor"],
    py_modules=["tcp_monitor"],
    install_requires=[
        "CommonPyLib",
    ],
    entry_points='''
        [console_scripts]
        tcp_monitor_gui=tcpmonitor:main
    '''
)

pip 安装输出:

Collecting CommonPyLib (from TcpMonitor==1.0)
  Could not find a version that satisfies the requirement CommonPyLib (from TcpMonitor==1.0) (from versions: )
No matching distribution found for CommonPyLib (from TcpMonitor==1.0)

最佳答案

只要依赖项在 install_requires 列表中列出,它就会自动检查该模块,如果不存在,它将安装它,前提是该模块可以从 PyPi 安装。 。如果没有(在 PyPi 上找不到该包),您会收到 无法找到满足要求的版本 错误。

我在 PyPi 上找不到任何具有此名称的软件包,因此如果您将软件包托管在其他地方(例如 GitHub),则需要添加要在 PyPi 上安装的依赖项,以便通过 pip 安装这可能提供一个解决方案:How can I make setuptools install a package that's not on PyPI?

运行pip install commonpylib返回

Could not find a version that satisfies the requirement commonlib (from versions: ) No matching distribution found for commonpylib

所以你没有安装脚本的问题,而是在 PyPi 上查找包的问题(它似乎不存在),或者至少 Python 不知道你在哪里托管它。

另一个选项是将该包与您正在分发的内容集成,而不使其成为依赖项(即将其添加到 __init__.py 文件等中)。

关于python - pip 安装我的 python 应用程序是否应该自动安装依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402740/

相关文章:

python - 仅针对项目需求卡住 pip

python - 如何获取 Pandas 系列中小数点后的最大位数

python - 为什么zip(*(range(1000),)* 1000000)这么快?

python-3.x - Windows 上的 Tensorflow 安装问题 "tensorflow_gpu-0.12.0rc0-cp35-cp35m-win_amd64.whl is not a supported wheel on th is platform."

python - 我可以防止 pip 隐式降级软件包吗?

python - 原因导致python包的位置不同

python - 无法使用 JAX 导入名称 'isin' Python

python - 根据其他两个数据框的单元格内容创建一个 pandas 数据框

python - 在字典上使用标签编码器

python - 3D 平面拟合方法(C++ 与 Python)