Python 在Ubuntu中找到pip安装包的源代码
我在Ubuntu中安装了一些带有pip的软件包。但是,我想更改这些软件包中已安装代码的某些部分。在windows中,使用提供的链接从Pycharm很容易做到这一点。如何从包中找到源代码并进行更改?我的输入代码:Python 在Ubuntu中找到pip安装包的源代码,python,ubuntu,pip,packages,Python,Ubuntu,Pip,Packages,我在Ubuntu中安装了一些带有pip的软件包。但是,我想更改这些软件包中已安装代码的某些部分。在windows中,使用提供的链接从Pycharm很容易做到这一点。如何从包中找到源代码并进行更改?我的输入代码: from metric_learn import LSML_Supervised 一般来说,模块和包有一个\uuuuu file\uuuuu属性,您可以使用该属性来查找它们的加载位置: >>> import jinja2 >>> jinja2.__f
from metric_learn import LSML_Supervised
一般来说,模块和包有一个
\uuuuu file\uuuuu
属性,您可以使用该属性来查找它们的加载位置:
>>> import jinja2
>>> jinja2.__file__
'/usr/local/anaconda3/envs/felix_backend/lib/python3.6/site-packages/jinja2/__init__.py'
EDIT Nov 20'20如果原始答案提到pip
通常在(有时是虚拟的)环境的站点软件包
目录中安装软件包,可能会更有帮助,但-e
选项可用于从目录或URL以所谓的可编辑模式安装模块或包。从pip安装--help
:
-e, --editable <path/url> Install a project in editable mode (i.e.
setuptools "develop mode") from a local project
path or a VCS url.
-e,--editable以可编辑模式安装项目(即。
来自本地项目的setuptools“开发模式”)
路径或VCS url。
这通常是通过克隆git存储库(大多数开源软件都可以通过这种方式从Github或类似的源代码中访问)然后使用pip install-e
安装来实现的。环境的解释器将使用给定目录中的代码,这些代码链接到而不是复制到环境的站点包
目录中
导入系统相当复杂,但是如果模块的
\uuuu file\uuu
属性不能回答您的问题,请参阅上的文档。站点包
是手动构建的python包的目标目录。当您从源代码构建和安装python包时(使用distutils,可能通过执行python setup.py install
),默认情况下,您将在站点包中找到已安装的模块
>>> 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']
您可以导入程序包,然后运行
程序包。_文件_
以获取位置。我的代码来自metric\u learn import LSML\u。当我试图打印LSML_Supervised时,我得到的文件属性对我不起作用:AttributeError:type对象“LSML_Supervised”没有属性“file”我的代码是以下来自metric_learn import LSML_Supervised的代码。不确定我应该为路径设置什么似乎在python2.7中不存在路径属性