【发布时间】:2017-09-18 23:37:02
【问题描述】:
我已经安装了 anaconda 4 并使用 Continuum 在其默认 Anaconda 安装程序中包含的所有软件包创建了环境。
conda create -n env_full python=3 anaconda=4
(env_full)neeraj@nicetomeetyou:~$ which anaconda
/home/neeraj/.conda/envs/env_full/bin/anaconda
我已经安装了一个包“mesa”。为了检查它是否正常工作,我编写了以下测试文件“1.py”。
import mesa
print('mesa is installed')
当我在 anaconda 环境中使用 python 运行文件时,它显示 ImportError。但是,当我检查是否安装了 mesa 时,它显示安装了 10.5.4 版本,如下所示:
(env_full)neeraj@nicetomeetyou:~$ conda list -f mesa --show
# packages in environment at /home/neeraj/.conda/envs/env_full:
#
mesa 10.5.4 0 defaults
(env_full)neeraj@nicetomeetyou:~$ python3 1.py
Traceback (most recent call last):
File "1.py", line 1, in <module>
import mesa
ImportError: No module named 'mesa'
使用 python 运行
(env_full)neeraj@nicetomeetyou:~$ python 1.py
Traceback (most recent call last):
File "1.py", line 1, in <module>
import mesa
ImportError: No module named 'mesa'
我该如何解决这个问题?
以下操作有效。我为 mesa 创建了另一个环境为 'env_mesa'
(env_full)neeraj@nicetomeetyou:~$ source activate env_mesa
然后使用 python 运行。
(env_full)neeraj@nicetomeetyou:~$ source activate env_mesa
discarding /home/neeraj/.conda/envs/env_full/bin from PATH
prepending /home/neeraj/.conda/envs/env_mesa/bin to PATH
(env_mesa)neeraj@nicetomeetyou:~$ python 1.py
mesa is installed
两种情况有什么不同?在这两种情况下,即使 conda list 的输出也相同
(env_mesa)neeraj@nicetomeetyou:~$ conda list -f mesa --show
# packages in environment at /home/neeraj/.conda/envs/env_mesa:
#
mesa 10.5.4 0 defaults
(env_full)neeraj@nicetomeetyou:~$ conda list -f mesa --show
# packages in environment at /home/neeraj/.conda/envs/env_full:
#
mesa 10.5.4 0 defaults
【问题讨论】:
-
试试
python 1.py -
试过但没用,更新了问题。谢谢。
-
据我所知,conda mesa 包只包含库(我猜来自 mesa3d 项目),但没有 python 文件。你从哪里得到
import mesa应该工作的想法?您是否在遵循某种示例? -
mesa3d 不同,mesa 与基于代理的建模有关。我要遵循的示例在这里:github.com/projectmesa/mesa-examples/blob/master/examples/…
-
嗯,从您输出的版本 10.5.4 来看,那个 mesa 包肯定是 mesa3d 而不是您想要使用的那个。也许这甚至没有现成的 conda 包,但您应该能够使用
pip来安装它。如果我执行pip install mesa,那么这似乎可以解决问题。之后调用conda list显示Mesa 0.7.5已安装,import mesa确实有效。
标签: python anaconda importerror