用户在 MacOS 上安装的 python 包路径应该是什么?

Lak*_*hor 4 python macos packages pip pythonpath

我在 Mac OS X 上,我听说为了避免可能导致 OS X 使用的 python 文件出现问题的包的全局安装(使用 sudo),安装 python 包的路径必须与 OS X 的路径不同.

目前 python 可执行文件安装在:

/usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

Pip 在这里安装模块:

/usr/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

Python从这里使用:

/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

这些路径安全吗?

Dav*_*len 6

如果您在 OS X 上,您还应该在/usr/bin以下位置安装 Python :

$ which -a python
/usr/local/bin/python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

如果您正在使用brew,第一个python应该是一个符号链接:

$ ls -hl $(which python)
lrwxr-xr-x  1 user  admin    34B Jun 23 16:53 /usr/local/bin/python -> ../Cellar/python/2.7.11/bin/python
Run Code Online (Sandbox Code Playgroud)

如果您不使用brew,则必须向我们解释您是如何安装python.

你还应该至少有两个site-packages

$ find /usr -name 'site-packages'
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
/usr/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

如果您python使用安装brew,您还应该拥有pip

$ which pip
/usr/local/bin/pip
Run Code Online (Sandbox Code Playgroud)

您可能应该将其升级到最新版本pip

$ pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

python使用安装包应该是安全的,/usr/local/bin/pip因为它们将安装在/usr/local/lib/python2.7/site-packages. 该/usr/local路径专用于本地软件。此外,brew将其文件安装到/usr/local,因此如果您正在使用brew,则您已经在那里安装了文件。

我不知道为什么有些人说不要在全球范围内安装任何软件包。我从未见过解释为什么这是一个坏主意的参考资料。如果多个用户需要同一个包,全局安装更有意义。

当我第一次开始使用 时virtualenv,它并不总是像我预期的那样工作。我有一台有多个用户需要的机器requests,由于 存在问题virtualenv,我最终使用pip.

双方virtualenvpip已经提高了很多,因为我使用他们第一次开始,我可以看到如何使用它们可以防止一些问题。如果您正在开发需要最新版本软件包的新软件,则virtualenv允许您安装该软件包而不影响系统的其余部分。但是,我仍然不明白为什么全局安装软件包是一个坏主意。