我如何设置Python的USER_SITE;我需要吗?

时间:2014-10-19 19:34:59

标签: python macos configuration path

我在OS X上安装了Python(10.10;只需用pip维护),我的网站包在

/Library/Python/2.7/site-packages

Apple的

包裹
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python

中的标准Apple Python安装
/System/Library/Frameworks/Python.framework/Versions/2.7

我没有做任何特别的设置,所以我认为它非常标准。我在网站包目录中安装我的软件包,我唯一做的就是自定义"是修剪我不需要的Apple软件包或者我在我的网站软件包目录中保存的那些软件包。

一切正常,all my paths似乎正是我所期待的;但是当我

时,我得到一个令人困惑的结果
python -m site

虽然这显示sys.path对我有意义

sys.path = [
    '/Users/Rax',
    '/Users/Rax/Documents/Projects/Coding/Python', # From PYTHONPATH
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
    '/Library/Python/2.7/site-packages',
]

我也得到了

USER_BASE: '/Users/Rax/Library/Python/2.7' (doesn't exist)
USER_SITE: '/Users/Rax/Library/Python/2.7/lib/python/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

对我来说没有意义。

不应该USER_SITE/Library/Python/2.7/site-packages吗?如果是,我该如何设置(我可以将USER_SITE设置为/Library/Python/2.7/,因为lib/python/已添加到路径中?


这让我倍感困惑,因为/Library/Python/2.7/site-packages已正确添加到sys.path(我不知道的地方),因为

import pkg_resources
pkg_resources.__file__

收益/Library/Python/2.7/site-packages/pkg_resources.pyc

1 个答案:

答案 0 :(得分:2)

用户站点是一个机器,意思是“允许用户在其主目录中本地安装Python包。” (见here)。即,它适用于本地用户包,而不是站点范围的安装。如果您的系统上有多个用户,则他们的用户站点包将是独立的。

documentation,我们可以看到USER_SITE是:

  

正在运行的Python的用户站点包的路径。如果是,可以是无   尚未调用getusersitepackages()。默认值是   UNIX和非框架Mac OS的〜/ .local / lib / pythonX.Y / site-packages   X build,〜/ Library / Python / X.Y / lib / python / site-packages for Mac   框架构建和%APPDATA%\ Python \ PythonXY \ site-packages打开   视窗。此目录是站点目录,表示.pth   其中的文件将被处理。

(用户群位于同一位置)

所以回答你的问题 - 我相信它们的设置正确。它是不同的站点包位置,而不是常规站点。

您还可以在常规模块文档中看到它:

  

此文件旨在在用户site-packages中创建   目录(见下文),它是sys.path的一部分,除非被禁用   -s。将默默忽略ImportError。

因此,这些路径不存在的事实并不重要。

另外,关于你的问题:

  

USER_SITE不应该是/Library/Python/2.7/site-packages吗?

请注意,在文档中显示 / Library / ... - ~替换为/Users/Rax/

您根本不必担心USER_SITE设置。如果目录不存在,则无论如何都不会将其添加到路径中。