【发布时间】:2018-05-04 20:17:18
【问题描述】:
我使用 pyenv 为我系统上的各种项目安装和管理不同版本的 python 和虚拟环境。但是 pipenv 现在是管理虚拟环境的推荐工具,我喜欢它的很多功能。大部分情况下一切正常,但是当涉及到 Jupyter 笔记本时,pipenv 似乎存在泄漏或其他问题。以下是在我的机器上复制问题的步骤。
- 使用
brew install pipenv安装 pipenv。 - 使用
pyenv install 3.6.3安装新版本的 Python,并通过pyenv global 3.6.3激活它。 - 安装 Jupyter notebook 和另一个包,例如
pip install jupyter requests。 - 创建一个新目录并导航到它;使用
pipenv install创建一个 pipenv 项目 - 使用
pipenv shell激活 pipenv 虚拟环境。 - 不要安装任何包,并使用
pip list确认当前virtualenv 中没有安装任何包。 (我只得到pip、setuptools和wheel。) - 运行
jupyter notebook。我的期望:控制台出错jupyter: command not found。实际:笔记本服务器和浏览器 UI 正常启动。 - 创建一个新笔记本并从第 3 步导入辅助包:
import requests。我的期望:抛出ModuleNotFoundError。实际:包已经导入,可以正常使用了。
如果我尝试在 pipenv 虚拟环境中但在 Jupyter 笔记本之外(在 repl 或 Python 脚本中)导入辅助包,我会按预期得到一个 ModuleNotFoundError。所以不知何故,问题出在 jupyter 上。请注意,如果我尝试使用 pyenv 虚拟环境而不是 pipenv 虚拟环境重新创建此问题,则会发生预期的行为:jupyter notebook 在控制台中产生jupyter: command not found 错误。
我的问题是:我是否以非预期的方式使用 pipenv,或者是否有其他使用 pipenv 的方法可以避免这个问题?
提前致谢!
【问题讨论】:
-
我怀疑这是与 pyenv 全局命令和 pipenv 的交互。使用 pipenv 时,您不需要激活 pyenv。
标签: python jupyter-notebook pyenv pipenv