如何在不执行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
选项,因为我不想排除源发行版。我只想避免执行其源代码。
从第19.3.1点开始似乎不可行:(