2015-06-11 65 views
0

我需要获取已安装软件包的位置(即来自“site-packages”或“dist-packages”),但我可能位于软件包目录本身内。获取已安装的软件包位置(非本地)

我已经尝试了一切从thesequestions,一些问题不可避免的出现。

我试过pip.get_installed_distributions(),这是非常接近的,但不能保证软件包已经与pip一起安装。如果软件包未安装pip,则get_installed_distributions()不会返回软件包。

回答

0

如何:

python -c 'import module; print module.__file__' 

E.g:

$ python -c 'import ssl; print ssl.__file__' 
/usr/lib64/python2.7/ssl.pyc 

对比:

$ python -c 'import requests; print requests.__file__' 
/home/lars/env/common/lib/python2.7/site-packages/requests/__init__.pyc 
+0

如果我的包的目录这是行不通的。换句话说,如果我在本地克隆一个包,并尝试在该目录内导入包,那么执行这些命令只会给我本地位置。 – Travis

+0

虽然这不正确的行为吗?它告诉你Python将使用的模块的位置,如果你要从该目录运行它的话。或者,你可以'(cd /; python -c'import module; print module .__ file __')''。坚持在一个别名,你都设置... – larsks

+0

我会尝试通过Python(首先移动到根),并看到它这样做的伎俩。这似乎是一个迂回的方式来实现这一点,但如果它的工作,它的作品 – Travis

相关问题