2017-07-24 95 views
1

我在Ubuntu中安装了一些使用pip的软件包。但是,我想从这些软件包中更改已安装的代码的一部分。在Windows中很容易这样做,从Pycharm使用提供的链接。如何从包中找到源代码并进行更改?我的导入代码:在Ubuntu中找到pip安装软件包的源代码

from metric_learn import LSML_Supervised 
+0

您可以导入的包,然后运行'包.__ file__'得到的位置。 – slallum

回答

2

一般来说,模块和包有__file__属性,你可以用它来找出他们在那里装:

>>> import jinja2 
>>> jinja2.__file__ 
'/usr/local/anaconda3/envs/felix_backend/lib/python3.6/site-packages/jinja2/__init__.py' 
+0

我的代码是从metric_learn导入LSML_Supervised。当我试图打印LSML_Supervised时,我得到了

+0

__file__属性不适用于我:AttributeError:类型对象'LSML_Supervised'没有属性'__file__' –

+1

'metric_learn .__ file__' – phd

2

site-packages是人工建造蟒蛇的目标目录包。从源代码构建和安装python包(使用distutils,可能通过执行python setup.py install),默认情况下,您会在site-pacakges中找到已安装的模块。

>>> import site; site.getsitepackages() 
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] 

如果你真的怀疑然后默认位置,

>>> import django 
>>> print django.__path__ 
['/Library/Python/2.7/site-packages/django'] 
+0

我的代码是从metric_learn导入LSML_Supervised中得到的。不知道我应该怎么做__path__ –

+0

似乎python2.7中不存在__path__属性 –