非常奇怪的python与ipython的差异

问题描述 投票:1回答:1

我目前正在抓住python和ipython的不同行为。

背景:我想玩tensorflow,并按照一些在线资源的说明,我安装了anaconda3,它会照顾一切。我对anaconda并不是特别熟悉,只是按照说明操作。

现在,我创建了一个虚拟环境(下例中的xyzzy)。然后,在这个环境中,我调用了一个交互式python shell并尝试导入numpy,pandas和tensorflow。

(xyzzy) countermode@peppermint:~$ python
Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 17:14:51) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
>>> import numpy as np
>>> import tensorflow as tf
>>> 

嗯,好吧,似乎pandas在某种程度上是不可访问的,虽然它实际上是安装的。

无论如何,现在与ipython相同:

(xyzzy) countermode@peppermint:~$ ipython
Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: import tensorflow as tf
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-3-64156d691fe5> in <module>()
----> 1 import tensorflow as tf

ModuleNotFoundError: No module named 'tensorflow'

所以现在pandas导入工作正常,而tensorflow似乎消失了。

嗯......这里发生了什么?为什么我会看到这种行为?我该如何解决?

补充资料

这一切都发生在Linux Mint上,系统更新,anaconda及其维护的所有包都会更新,环境中的所有包都会更新。我没有干涉任何东西。

结论

在虚拟环境中安装ipython后,两个shell都“同意”了他们的行为。

python anaconda ipython
1个回答
1
投票

这个问题可能与this重复/有关。

您可能全局安装python,因此不使用虚拟环境。解决这个问题:

  1. 激活venv
  2. 使用pip在venv中安装ipython

如果venv被激活,它现在应该在venv中使用ipython版本。

© www.soinside.com 2019 - 2024. All rights reserved.