如果您使用的是 linux 并且您宁愿完全避免使用 conda,并使用虚拟环境 (venvs) 来让 python 开心,并且您碰巧使用的是基于“旧”/LTS Debian 的操作系统,它可能没有最新的 nodejs :即 Ubuntu 16.04 LTS,它没有node
但是nodejs
(node
属于另一个包,'legacy nodejs' 版本太旧),然后继续阅读。
这设置起来有点复杂,但比 conda 更容易长期维护。(你总是可以venv
为一个新项目创建一个新项目,而不会破坏你的旧项目)。
要点是:
- 使用 PPA 获取所需内容的新版本
- 使用 virtualenvwrapper,您可以:
- 使用最新的 python3
- 避免弄乱你的“点子安装”
- 避免让系统包管理器混淆
- 也可以轻松地与使用不同版本 python 的人合作
- 遵循 python 最佳实践
- 很容易拥有不同的 venv,它们可能有旧的或不兼容的 python 和 pip 包。
- 使用Nodejs 二进制发行版
- jupyterlab 小部件需要 node.js 版本“10.x”
- 允许使用系统的包管理器来保持 nodejs 新鲜
- 只要 LTS 存在,就会保持并可用
所以,所有实际步骤(这些都经过测试可以在 Linux Mint 18.3 Sylvia 上工作,它基本上与 ubuntu xenial aka Ubuntu 16.04 LTS 兼容。差异主要出现在 nodejs 中,阅读上面 github 链接中的自述文件以解决其他操作系统) :
找一个管理员来做(或者如果你可以 sudo 自己做):
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.8 python3.8-dev python3.8-distutils python3-pip python3-venv
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
然后,作为您自己的用户,您可以完成其余步骤:
pip3 install --user virtualenv virtualenvwrapper
mkdir ~/.envs
然后,您需要将以下内容添加到您的末尾.bashrc
:
export PATH=~/.local/bin:$PATH
export WORKON_HOME=~/.envs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh
此时,创建一个新的 shell,您将能够运行其余的设置,实际安装 jupyterlab:
mkvirtualenv -p python3.8 jupenv
pip install jupyter matplotlib pandas ipympl tqdm
jupyter labextension install @jupyter-widgets/jupyterlab-manager
现在你完成了。
要打开/使用 jupyter,您需要(因为我在jupenv
上面调用了 venv,您可以在该mkvirtualenv
行中随意命名):
workon jupenv
jupyter lab
否则,我将无休止地试图让 nodejs 与过时的 ubuntu 包一起工作。有时它会工作,重新启动几次,然后失败。其他时候它只会继续给我同样的缺失小部件,或者有时是几行垃圾 js 代码。
Virtualenvs 非常值得使用,尤其是当您开始认真使用 python,并与可能使用不同版本/不同 pip 包集的其他人一起工作时。VirtualEnvWrapper使这非常轻松。基本的一点是,你“pip install”的所有东西,甚至是 jupyter,最终都会被完全分开(并且与系统包分开),这让所有东西都能很好地工作。
有一些基本的做和不做:
- 不要在
pip install ...
没有进入 venv 的情况下运行线路
- 不要
pip3
在pip
venv 中使用。
- 只使用
python
而不是python3
在其中运行。
- 不要使用
conda...
!
- 请注意,您可以通过以下方式一次更新所有 virtualenvs:
allvirtualenv pip install -U pip
至于 nodejs 二进制分发包:强烈推荐它们支持您的特定操作系统。它们将是最新的,应该会带来最少的麻烦。