我在OS上安装了Python (10.10;使用pip维护),我的站点包在
/Library/Python/2.7/site-packages
苹果的软件包
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
中的标准Apple Python安装
/System/Library/Frameworks/Python.framework/Versions/2.7
我没有做什么特别的设置,所以我认为它是相当标准的。我将我的软件包安装在站点软件包目录中,我唯一要做的“定制”就是修剪我不需要的苹果软件包,或者我在站点软件包目录中维护的重复的软件包。
一切都很好,我所有的路似乎就像我所期望的那样;然而,当我
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
。
发布于 2014-10-19 20:13:49
用户站点是一种机器,意思是“允许用户在自己的主目录中安装Python包。”(见这里)。也就是说,它是针对本地用户包的,而不是站点范围内的安装。如果系统上有多个用户,则他们的用户站点包将是单独的。
从文档中,我们可以看到USER_SITE是:
用户站点的路径-运行Python的包。如果getusersitepackages()尚未被调用,则可以为空。默认值是~/..local/lib/pythonX.Y/site-用于UNIX和非框架Mac构建的包,~/Library/Python/X.Y/lib/Python/site-用于Mac框架构建的包,以及%APPDATA%\Python\PythonXY\site- Windows上的包。这个目录是一个站点目录,这意味着它中的.pth文件将被处理。
(用户群在同一位置)
所以回答你的问题-我相信他们的设置是正确的。这是一个不同的网站包的位置,比常规的。
您还可以在通用模块文档中看到它说:
此文件将在用户站点包目录(见下文)中创建,除非被sys.path禁用,否则它是-s的一部分。ImportError将被静默地忽略。
因此,这些路径不存在的事实并不重要。
此外,关于你的问题:
USER_SITE不是应该是/Library/Python2.7/站点包吗?
注意,在文档中写着~/Library/.- ~
被/Users/Rax/
替换
您根本不应该担心USER_SITE设置。如果目录不存在,则不会将其添加到路径中。
https://stackoverflow.com/questions/26454521
复制相似问题