gpt4 book ai didi

对于不同的venv环境,Python包没有单独安装

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:33 29 4
gpt4 key购买 nike

TL;DR
想要使用不同的 python 设置运行 Jupyter 笔记本。 Python 包始终全局安装。不明白为什么。\TL;DR

我想使用 venv 运行具有不同 python 设置的 Jupyter 笔记本。请参阅此处的 official documentation .

Python 3.6 已安装在我的系统上

$ python --version
Python 3.6.1 :: Continuum Analytics, Inc.

使用以下命令我创建了两个虚拟环境:

$ python3 -m venv --without-pip Documents/venv/test01
$ python3 -m venv --without-pip Documents/venv/test02

关注此guide我尝试为每个笔记本设置不同的内核

$ source activate test01
(Documents/venv/test02) $ python -m ipykernel install --user --name test01 --display-name test01

但是,第二个命令失败了

/Users/dominik/Documents/venv/test02/bin/python: No module named ipykernel

因此,我停用了 venv 并在 venv 之外运行了相同的命令,结果成功了

$ source deactivate test01
$ python -m ipykernel install --user --name test01 --display-name test01
$ python -m ipykernel install --user --name test02 --display-name test02

在我的 Jupyter 笔记本中,我现在可以看到不同的内核: new kernels available

现在我正在使用 test01 内核创建一个新笔记本。在笔记本内部,我尝试添加一个默认情况下在 Python 中不可用的模块:

$ import mord
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-a00d777a7e47> in <module>()
----> 1 import mord

ModuleNotFoundError: No module named 'mord'

这符合预期。然后,我开始使用 pip 将该软件包安装到我的 test01 环境中

$ source activate Documents/venv/test01
(Documents/venv/test01) $ pip install mord

重新启动我的 test01 内核后,导入错误消失 - 正如预期的那样。但是 - 现在这是我的问题 - 当我在 test02 笔记本上 import mod 包时,也没有导入错误。这是为什么?

我希望仅为 test01 安装 mord 软件包。不过,它似乎是全局安装的。

查看 venv 文件夹,它表明没有任何内容专门添加到这些项目中 venv folders

pyvenv.cfg 文件似乎也没有变化。

home = /Users/dominik/anaconda/bin
include-system-site-packages = false
version = 3.6.1

任何人都可以给我一些指示,我做错了什么吗?

最佳答案

因为您使用 --without-pip 标志创建了 virtualenv,所以虚拟环境中没有 pip 可执行文件,您使用了系统 pip安装包。

基本上,虚拟环境不参与您的设置,即使有两个内核规范,它们都是在禁用 virtualenv 的情况下创建的。

建议设置步骤:创建不带 --without-pip 选项的 virtualenv;为每个虚拟环境安装 ipykernel,这意味着在激活 virtualenv 时安装;从相应的 virtualenv 创建内核规范。

关于对于不同的venv环境,Python包没有单独安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048187/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com