我目前正在抓住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都“同意”了他们的行为。
这个问题可能与this重复/有关。
您可能全局安装python,因此不使用虚拟环境。解决这个问题:
如果venv被激活,它现在应该在venv中使用ipython版本。