有没有办法检查Python包是否已经正常安装(pip install / setup.py install)还是以可编辑/蛋链接模式安装(pip install -e / setup.py develop)?
我知道可以检查包的路径是否包含site-packages,这很可能意味着它是“不可编辑”的安装方式,但这种方法感觉非常不好,我宁愿避免使用。
我尝试检查这个的原因是,我的应用程序正在各个地方检查配置文件,例如/etc/myapp.conf和~/.myapp.conf。对于开发人员,我想在/myapp.conf中进行检查,但是由于如果未找到配置,则会显示可能位置列表,因此当包已安装到site-packages时,我真的不希望包括pkgdir选项(因为用户不应该在其中创建配置文件)。
我知道可以检查包的路径是否包含site-packages,这很可能意味着它是“不可编辑”的安装方式,但这种方法感觉非常不好,我宁愿避免使用。
我尝试检查这个的原因是,我的应用程序正在各个地方检查配置文件,例如/etc/myapp.conf和~/.myapp.conf。对于开发人员,我想在/myapp.conf中进行检查,但是由于如果未找到配置,则会显示可能位置列表,因此当包已安装到site-packages时,我真的不希望包括pkgdir选项(因为用户不应该在其中创建配置文件)。
setup.py
内部,有什么办法可以知道是否正在进行pip install -e .
? - nmz787sys.argv
并查找-e
。这在大多数情况下都有效,但如果-e
在要求文件中指定,则无效。 - silviot