不执行setup.py的点下载

问题描述 投票:3回答:1

如何在不执行setup.py文件(可能包含恶意代码)的情况下下载发行版,可能是sdist?

我不想递归地获取依赖关系,仅下载一个文件用于指定的发行版。尝试不起作用:

pip download --no-deps mydist

在上述情况下,仍然执行setup.py的示例:

$ pip --version  # pip v18.0 on Python 3.7.0 / Linux
pip 18.0 from /tmp/.venv/lib/python3.7/site-packages/pip (python 3.7)
$ pip download --no-deps suds
Collecting suds
  Downloading https://files.pythonhosted.org/packages/bc/d6/960acce47ee6f096345fe5a7d9be7708135fd1d0713571836f073efc7393/suds-0.4.tar.gz (104kB)
    100% |████████████████████████████████| 112kB 10.2MB/s 
  Saved ./suds-0.4.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-download-56eyyp0s/suds/setup.py", line 20, in <module>
        import suds
      File "/tmp/pip-download-56eyyp0s/suds/suds/__init__.py", line 154, in <module>
        import client
    ModuleNotFoundError: No module named 'client'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-download-56eyyp0s/suds/

我无法使用--no-binary选项,因为我不想排除源发行版。我只想避免执行其源代码。

python pip setuptools distutils pypi
1个回答
0
投票

从第19.3.1点开始似乎不可行:(

请参见https://github.com/pypa/pip/issues/1884

© www.soinside.com 2019 - 2024. All rights reserved.