【问题标题】:Package found in Jupyter Notebook but not command line在 Jupyter Notebook 中找到包,但在命令行中找不到
【发布时间】:2021-11-22 18:39:54
【问题描述】:

规格

  • Ubuntu 18.x
  • conda 4.8.3

我在命令行中创建了一个新的 conda 环境。在安装了一些包之后,我在 jupyterlabs 中使用这些包运行了一个内核,没有任何问题。我后来写了一个 .py 程序,但它给出了错误,说我没有安装软件包。这是重现错误的最小示例:

conda create -n new_env pip ipykernel python=3.7
conda activate new_env
whereis pip

/opt/conda/envs/new_env/pip

/opt/conda/envs/new_env/pip install pandas pandas
ipython kernel install --user --name=new_env

在 jupyterlab 笔记本中(使用 new_env 环境),import pandas as pd 完美运行。在命令行内部会产生一个错误:

conda activate new_env
python
>>>import pandas

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 ModuleNotFoundError: 没有名为“pandas”的模块

罪魁祸首?

在 jupyter notebook 内部(带有 new_env 环境),sys.path

['/rapids/notebooks/my_code/TF_Models/DAE',
 '/opt/conda/envs/new_env/lib/python37.zip',
 '/opt/conda/envs/new_env/lib/python3.7',
 '/opt/conda/envs/new_env/lib/python3.7/lib-dynload',
 '',
 '/opt/conda/envs/new_env/lib/python3.7/site-packages',
 '/opt/conda/envs/new_env/lib/python3.7/site-packages/IPython/extensions',
 '/root/.ipython']

在命令行中(new_env conda 已激活),sys.path 是:

['', 
'/opt/conda/lib/python38.zip', 
'/opt/conda/lib/python3.8', 
'/opt/conda/lib/python3.8/lib-dynload', 
'/opt/conda/lib/python3.8/site-packages']

如果不是实际问题,这显然与问题有关。 jupyterlab 指向正确的路径,但 conda 环境中的 python 不是。这给了我两个问题:

1.如何获取 new_env 环境指向正确路径的命令行 python?

2。如何获取带有 new_env 环境的命令行 python 来运行已安装的包?

【问题讨论】:

  • 您是否可以在命令行中为 python 设置 alias?您可以在命令行中检查whereis pythontype python 吗?看起来像选择了基础环境中的python

标签: python anaconda conda


【解决方案1】:

你正在使用(注意只有一个=):

conda create -n new_env pip ipykernel python=3.7

试试==:

conda create -n new_env pip ipykernel python==3.7

【讨论】:

  • 在将= 更改为== 时,我们得到了python 3.7.0 的完全匹配,而不是给我版本3.7.12 的模糊匹配。不幸的是,这并没有改变指向错误版本 python 的系统路径。
猜你喜欢
  • 2020-08-14
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2020-12-07
  • 2016-07-22
  • 2020-08-24
  • 2019-02-08
  • 1970-01-01
相关资源
最近更新 更多