virtualenv 虚拟环境

Windows 上安装 Python 3.8.5 以及 virtualenv 20.0.31 ;

使用 virtualenv test 初始化 test 文件夹作为虚拟环境,然后使用文件夹下的 Scripts\activate 激活虚拟环境。

查看 Python 的路径,虚拟环境是把可执行文件直接拷贝了一份(

  • 以下操作在 cmder 中执行
1
2
3
4
5
6
7
# 本机环境
λ which python
/c/Python38/python

# 虚拟环境
(test) λ which python
/d/Study/Github/test/Scripts/python

Jupyter Notebook

目标是在本机上使用 Jupyter Notebook,而其内核使用虚拟环境(virtualenv 创建的虚拟环境 test)

1
2
3
# 本机环境
λ pip install jupyter
...

把虚拟环境添加到 Notebook 的环境只需要几步:

1
2
3
4
5
6
7
8
9
10
# 虚拟环境
(test) λ pip install ipykernel
...

# 本机环境
λ python -m ipykernel install --user --name=test # 虚拟环境名称
Installed kernelspec test in C:\Users\linki\AppData\Roaming\jupyter\kernels\test

λ jupyter notebook
...

重新打开 Notebook 显示刚安装的虚拟环境内核

问题

找不到刚在虚拟环境里安装给的包,使用的不是虚拟环境中的 Python 。

解决方法

打开安装内核的路径 C:\Users\linki\AppData\Roaming\jupyter\kernels\test ,查看配置文件 kernel.json 。好家伙,使用的是本地环境里的 Python !把它改为虚拟环境目录下的 Python,再重新打开 Notebook 就能解决了x

1
2
3
4
5
6
7
8
9
10
11
{
"argv": [
"C:\\Python38\\python.exe", <--- 就是这里,改成 D:\\Study\\Github\\test\\Scripts\\python.exe
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "test",
"language": "python"
}

可以 🙃

其他

Jupyter Notebook 内核相关操作

1
2
3
4
5
6
7
8
9
10
11
12
13
# 列出所有内核
λ jupyter kernelspec list
Available kernels:
lab-f8g3nyob C:\Users\linki\AppData\Roaming\jupyter\kernels\lab-f8g3nyob
test C:\Users\linki\AppData\Roaming\jupyter\kernels\test
python3 c:\python38\share\jupyter\kernels\python3

# 卸载内核
λ jupyter kernelspec uninstall test
Kernel specs to remove:
test C:\Users\linki\AppData\Roaming\jupyter\kernels\test
Remove 1 kernel specs [y/N]: y
[RemoveKernelSpec] Removed C:\Users\linki\AppData\Roaming\jupyter\kernels\test