Thi*_*ter 5 python pip setuptools python-packaging
有什么方法可以检查 Python 包是否已正常安装 ( pip install/ setup.py install) 或处于可编辑/egg-link 模式 ( pip install -e/ setup.py develop)?
我知道我可以检查包的路径是否包含site-packages最有可能意味着它是“不可编辑”的安装,但这感觉非常脏,我宁愿避免这种情况。
我试图检查这一点的原因是我的应用程序正在检查各个位置的配置文件,例如/etc/myapp.conf和~/.myapp.conf。对于我想签入的开发人员,<pkgdir>/myapp.conf但由于我显示了可能的位置列表,以防找不到配置,我真的不想在将包安装到站点包时包含 pkgdir 选项(因为用户应该不要在那里创建配置文件)。
pip包含这方面的代码(它用于在行前pip freeze加上 前缀-e)。由于pip的 API 不能保证稳定,因此最好将代码复制到自己的应用程序中,而不是从 导入pip:
def dist_is_editable(dist):
"""Is distribution an editable install?"""
for path_item in sys.path:
egg_link = os.path.join(path_item, dist.project_name + '.egg-link')
if os.path.isfile(egg_link):
return True
return False
Run Code Online (Sandbox Code Playgroud)
该代码已获得 MIT 许可,因此可以安全地复制并粘贴到几乎任何项目中。
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |