【问题标题】:Difference between installation of pip git+https and python setup.pypip git+https 和 python setup.py 安装的区别
【发布时间】:2020-12-13 11:40:37
【问题描述】:

我知道this 热门话题,但是在使用pipgit+httpspython setup.py 安装python 应用程序时遇到了不同的结果

我正在构建一个docker 图像。我正在尝试安装在包含其他几个 python 应用程序的图像中,this custom webhook。

  1. 使用git+https
RUN /venv/bin/pip install git+https://github.com/alerta/alerta-contrib.git#subdirectory=webhooks/sentry

这似乎以正确的方式安装 webhook,因为相关的端点是 l8r 可发现的。 更重要的是,当我执行到正在运行的容器并搜索相关文件时,我看到以下内容

./venv/lib/python3.7/site-packages/sentry_sdk
./venv/lib/python3.7/site-packages/__pycache__/alerta_sentry.cpython-37.pyc
./venv/lib/python3.7/site-packages/sentry_sdk-0.15.1.dist-info
./venv/lib/python3.7/site-packages/alerta_sentry.py
./venv/lib/python3.7/site-packages/alerta_sentry-5.0.0-py3.7.egg-info
  1. 在我的第二种方法中,我只是将这个目录复制到本地,然后在我的Dockerfile 中复制
COPY sentry /app/sentry
RUN /venv/bin/python /app/sentry/setup.py install

这并没有正确安装 webhook,而且,在相应的容器中,我看到了不同的文件布局

./venv/lib/python3.7/site-packages/sentry_sdk
./venv/lib/python3.7/site-packages/sentry_sdk-0.15.1.dist-info
./venv/lib/python3.7/site-packages/alerta_sentry-5.0.0-py3.7.egg
./alerta_sentry.egg-info
./dist/alerta_sentry-5.0.0-py3.7.egg

sentry_sdk - 相关文件必须无关)

为什么第二种方法无法正确安装 webhook?

这两个选项应该产生相同的结果吗?

【问题讨论】:

  • "这两个选项是否应该产生相同的结果?" 不,为什么?您问题中的第一个链接解释了差异,即使在阅读了那里的答案之后,您仍然希望它们是等效的?为什么?

标签: python pip setup.py


【解决方案1】:

最终起作用的是以下

RUN /venv/bin/pip install /app/sentry/

我不知道这两种安装方式的细微差别

我确实注意到/venv/bin/python /app/sentry/setup.py install 没有生成alerta_sentry.py,而只生成了.egg 文件,即./venv/lib/python3.7/site-packages/alerta_sentry-5.0.0-py3.7.egg

另一方面,/venv/bin/pip install /app/sentry/ 解压缩 (?) .egg 创建 ./venv/lib/python3.7/site-packages/alerta_sentry.py

我也不知道为什么第二个安装选项(即创建 .egg 文件的那个)在运行时不起作用。

【讨论】:

    猜你喜欢
    • 2013-03-21
    • 2018-01-28
    • 2020-06-10
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多