$ HOME/.local的目的是什么?

Wak*_*nka 11 python pip

我注意到我$HOME/.local在我的机器上,似乎这个目录主要包含与python相关的东西,这里是它的完整列表(它有点长).

我想问一下这个目录创建了哪个动作?我想它是pip install --user -r requirements.txt(下面是我已经弄明白的命令),但我想知道是否还有其他工具存储数据?我想如果是pip这样easy_install可以做到这一点或不做?您是否知道使用此目录的任何其他工具,或者它是pip专属的?

以下命令显示从该目录导入了一些python模块,最后一个的输出在这里(它有点长):

marek@ubuntu:~$ python -c 'import mock; print mock.__file__'
/home/marek/.local/lib/python2.7/site-packages/mock.pyc
marek@ubuntu:~$ echo $PYTHONPATH

marek@ubuntu:~$ tree .local/ | grep  mock
?           ??? mock-1.0.1.egg-info
?           ??? mock.py
?           ??? mock.pyc
?           ?   ??? mock.py
?           ?   ??? mock.pyc
marek@ubuntu:~$ pip show -f mock
---
Name: mock
Version: 1.0.1
Location: /home/marek/.local/lib/python2.7/site-packages
Requires: 
Files:
Cannot locate installed-files.txt
marek@ubuntu:~$ python -c 'import sys, pprint; pprint.pprint(sys.path)'
['',
 '/home/marek/.local/lib/python2.7/site-packages/nupic-0.3.0.dev0-py2.7-linux-x86_64.egg',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/home/marek/.local/lib/python2.7/site-packages',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PILcompat',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
marek@ubuntu:~$ python -v 2>&1 | tee modules
Run Code Online (Sandbox Code Playgroud)

下面回答说,应该有$HOME/.local/bin/hg这个目录中,如果它与创建pip,但我没有这个文件.它创建pip与否?

tyn*_*ynn 12

它没有直接连接到Python,但是Pip使用它.让我们从头开始.首先你应该明白,/usr目录用于:

在当前的Unices中,/ usr是用户土地计划和数据(与"系统土地"程序和数据相对)的地方.

它应该用于系统安装的数据,即分发的官方包.

/usr/local目录镜像目录的结构/usr,但系统管理员可以使用该目录为所有用户安装本地或第三方程序包.

~/.local目录现在仅针对单个用户具有相同的目的.

通常,您将使用该/usr目录使用默认包管理器安装包.但是,由于您使用Pip作为Python模块的包管理器,因此将安装这些模块~/.local.

所以基本上pip可能已创建~/.local或只是任何其他程序将数据写入其中一个目录.~/.local/share例如,大多数应用程序使用它来存储其数据.

  • 环境变量“PYTHONUSERBASE”可用于将其从“$HOME/.local”更改 (4认同)

Max*_*ski 12

$HOME/.local 是用户应用程序将其文件和文件夹放置在用户主目录中的位置。

根据file-hierarchy(7)手册页的主目录部分,特定于用户的数据应在以下子目录中拆分:$HOME/.local

  • ~/.local/bin对于应出现在用户的 $PATH 搜索路径中的可执行文件。在 Python 的情况下,这可能是一个像pipenv.
  • ~/.local/lib适用于与所有架构兼容的静态、私有供应商数据。在 Python 的情况下,这些是像requests.
  • ~/.local/share用于多个包之间共享的资源。在 Python 的情况下,这可能是virtualenvs. 它也是XDG 基本目录规范的一部分,其中提到它作为$XDG_DATA_HOME.

从上面的观察可以清楚地看出,$HOME/.local这与 Python 本身没有什么特别的关系。pip install --user将其文件放入$HOME/.local仅意味着它符合freedesktop.org发布的建议。

如果您使用 安装包sudo pip install,它将根据文件系统层次结构标准将包文件分发到/usr层次结构中,这在系统级别遵循相同的逻辑,就像您的分发包管理器一样。

  • 它也不在linux 的“man hier”中。file-hierarchy(7) 手册页由 freedesktop.org 周围的人员与 systemd 一起打包。 (2认同)