Pipenv 安装

Arch Linux: yay -S python-pipenv 其他系统:pip install pipenv

虚拟环境路径

默认情况下,pipenv 在 Linux 下创建的虚拟环境路径存储在:~/.local/share/virtualenvs/,如果找不到可以通过以下两个选项确定虚拟环境路径:

1
2
--venv                          Output virtualenv information.
--py Output Python interpreter information.

一般情况下,我们习惯将虚拟环境放在对应项目下面,因此需要在.bashrc/.zshrc (或者其他终端配置文件中) 加入 export PIPENV_VENV_IN_PROJECT=1 来让虚拟环境创建到你的项目目录中,这样就避免了以后路径更改带来的问题。

在 Windows 上我们可以采用添加环境变量的方式进行设置:添加环境变量 PIPENV_VENV_IN_PROJECT,设置其值为 true 或者 1

pipenv + vscode 使用

配置虚拟 python 解释器

打开项目根目录下的 .vscode/settings.json, 如果没有,可以使用下面命令创建:mkdir .vscode && touch .vscode/settings.json,然后将以下内容复制进去:

1
2
3
4
5
6
7
8
9
10
11
12
{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.pyc": true,
"**/__pycache__": true
},
"python.pythonPath": "<VIRTUALENV_PYTHON_PATH_HERE>"
}

file.exclude 块对那些没有显示的文件,用现存的 VSCode 设置,然后将 .pyc__pycache__ 加入到列表中。python.pythonPath 用来指定该项目的 python 路径, 一般写为.venv/bin/python 即可

然后使用 VScode 在载入项目时,在左下角点击 Python 解释器,选择虚拟环境的那个即可。

关于 Code-Runner 运行使用的解释器,也可以在该项目的 setting.json 里面修改,它会优先使用本地的设置覆盖全局的设置。

我的一个虚拟环境的 .vscode/settings.json

1
2
3
4
5
6
7
8
9
10
{
"python.pythonPath": ".venv/bin/python",
"code-runner.executorMap": {
// code runner 配置解释器
"python": ".venv/bin/python",
"shell": "/usr/bin/zsh"
},
// coder runner 配置在终端运行
"code-runner.runInTerminal": true
}

pipenv 简单使用

  1. 在项目根目录下创建虚拟环境或者安装包

    1
    2
    $cd myproject
    $pipenv install requests

  2. 在虚拟环境下运行脚本文件

    1. pipenv run运行一次 pipenv run python main.py

    2. pipenv shell 进入虚拟 shell,然后就可以愉快的在里面python main.py

      1
      2
      3
      4
      5
      6
      7
      $ pipenv shell
      Launching subshell in virtual environment...
      . /run/media/realyee/notes/pyworkspace/rl/.venv/bin/activate

      # realyee @ arch in /run/media/realyee/notes/pyworkspace/rl on git:master x [14:28:34]
      $ . /run/media/realyee/notes/pyworkspace/rl/.venv/bin/activate
      (rl)

  3. 退出虚拟环境 exit

  4. 卸载某个包

    1
    2
    3
    pipenv uninstall XXX  # 卸载 XXX 模块, 并从Pipfile中移除
    pipenv uninstall --all # 卸载全部包,并从Pipfile中移除
    pipenv uninstall --all-dev # 卸载全部开发包, 并从Pipfile中移除

  5. 删除虚拟环境 pipenv --rm # 删除虚拟环境

参考文章

  1. Visual Studio Code, Python and pipenv
  2. Pipenv & Virtual Environments
  3. pipenv 入门教程
  4. Advanced Usage of Pipenv