在Mac OS上管理python软件包

时间:2019-11-22 04:21:33

标签: python-3.x macos jupyter macports jupyter-contrib-nbextensions

我在Mac上使用macports安装python3。我决定遵循macports路径,而不是直接进行Python3下载/安装,以使其与Apple的本机Python安装分开。我选择使用Python36,因为它与最近添加的LabView python节点兼容。

从那时起,我通过Macports添加了许多其他软件包:numpy,scipy,Pillow,matplotlib,pandas,jupyter,spyder等。。。我什至从未安装过PIP(py36-pip)。

当我尝试安装“ jupyter_contrib_nbextensions”时,问题开始了。该程序包未显示为可用的“ macport”。我很不情愿地尝试了PIP ...一切似乎都不错,但是在构建阶段收到了很多错误消息。

我想知道。通过macports安装主要python时,安装其他python软件包的正确协议是什么?

  1. 也许安装python 3.x和相应的PIP并使用PIP而不是macports管理所有其他软件包?当然,所有python软件包都必须通过PIP进行更新(当前,所有内容都通过macports进行更新,这既方便又方便)。

  2. ...,或者,因为jupyter_contrib_nbextensions是到目前为止我找不到的唯一不工作的软件包,请破解它并以某种方式“手动”安装?

  3. 还有什么?

感谢您的见识。

干杯, 拉德克


(深夜)更新:

在这里阅读了多个python版本的大量文章后,https://realpython.com/intro-to-pyenv/我决定从python中删除所有macports软件包(确实有点吓人,但是提到的网站上的文字站点合理清晰)。请注意,仍然需要macportshomebrew来安装和构建pyenv

在安装pyenv之后,花了一些时间来构建python3.6。现在,我可以在全局(任何目录)或本地(仅在该目录中)设置的python个版本之间切换。

PIP有点令人沮丧,因为它未安装在“系统” python(在/ usr / bin中)中,但已安装在3.6中。我只是在本地3.6版本中安装jupyter ....接下来是扩展。

全部解决了。

pyenv一直! R>

1 个答案:

答案 0 :(得分:1)

问题是正在使用哪个PIP?通常,当某个版本的PIP(例如系统版本)与多个版本的Python相关联时,麻烦就开始了。使用MacPorts的{​​{1}}版本时最好的避免方法是始终使用Python的版本。

关于PIP的多个版本的管理;在Python个版本之间切换时,如果使用port select则很容易管理。我有一个Python函数,这使我非常容易在~/.bash_profile的多个版本及其Python的版本之间来回切换。

例如:

PIP

~/.bash_profile

像这样使用它:

# MacPorts Python and PIP version selection
py() { [[ "$1" = "2" ]] && sudo port select --set python python27 \
&& sudo port select --set pip pip27 && kill -INT $$ && alias pip=pip2; \
[[ "$1" = "3" ]] && sudo port select --set python python36 \
&& sudo port select --set pip pip36 && kill -INT $$ && alias pip=pip3; \
echo "Invalid Python version selected." ; }

检查版本:

$ py 2 # switches to Python 2.7 and PIP 2.7
$ py 3 # switches to Python 3.6 and PIP 3.6

当所有内容都在同一页面上时,它将使管理方面变得更好。