Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Ubuntu中找到pip安装包的源代码_Python_Ubuntu_Pip_Packages - Fatal编程技术网

Python 在Ubuntu中找到pip安装包的源代码

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

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

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中不存在路径属性