有没有办法为pkg_resources指定自定义目标目录以列出pip包?我希望能够使用--target
通过已经提供自定义目标目录的pkg_resources.require()
找到已安装在自定义目标目录中的软件包。
我不想要的是使用:
setuptools.find_packages
,因为它只使用sys.path
setuptools.PEP420PackageFinder.find
我很感激你的帮助。
答案 0 :(得分:1)
pkg_resources.find_distributions
函数(在Getting or Creating Distributions下记录)接受目标dir来搜索包。例如:
$ ls -l my_target_dir/
total 36
drwxr-xr-x 2 hoefling hoefling 4096 May 17 13:29 __pycache__
-rw-r--r-- 1 hoefling hoefling 126 May 17 13:29 easy_install.py
drwxr-xr-x 5 hoefling hoefling 4096 May 17 13:29 pip
drwxr-xr-x 2 hoefling hoefling 4096 May 17 13:29 pip-10.0.1.dist-info
drwxr-xr-x 5 hoefling hoefling 4096 May 17 13:29 pkg_resources
drwxr-xr-x 6 hoefling hoefling 4096 May 17 13:29 setuptools
drwxr-xr-x 2 hoefling hoefling 4096 May 17 13:29 setuptools-39.1.0.dist-info
drwxr-xr-x 5 hoefling hoefling 4096 May 17 13:29 wheel
drwxr-xr-x 2 hoefling hoefling 4096 May 17 13:29 wheel-0.31.1.dist-info
使用my_target_dir
扫描pkg_resources.find_distributions
:
In [2]: list(pkg_resources.find_distributions('my_target_dir'))
Out[2]:
[wheel 0.31.1 (/data/gentoo64/tmp/so-50380624/my_target_dir),
setuptools 39.1.0 (/data/gentoo64/tmp/so-50380624/my_target_dir),
pip 10.0.1 (/data/gentoo64/tmp/so-50380624/my_target_dir)]