【问题标题】:ModuleNotFoundError:No module named '__builtin__' in condaModuleNotFoundError:conda 中没有名为“__builtin__”的模块
【发布时间】:2018-06-09 10:40:34
【问题描述】:

我查看了其他答案,例如 conda install future 和其他答案,但似乎没有一个可以解决此错误。直到昨天一切正常,但今天当我尝试运行我的脚本时,我收到了这个错误。

我最初认为我有多个来自 pip 和 conda 的 pandas 包,所以我从这两个包中卸载,然后再次通过 conda 安装。但错误仍然存​​在。

我已经在 anaconda 2 中安装了 python 3.6 作为单独的环境。

Traceback (most recent call last):
  File "/Users/amit/anaconda2/envs/python36/lib/python3.6/site-packages/pandas/compat/__init__.py", line 49, in <module>
    import __builtin__ as builtins
ModuleNotFoundError: No module named '__builtin__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 18, in <module>
    from nameserver import NameServer
  File "/Users/amit/Work/ml/marl/nameserver.py", line 4, in <module>
    import pandas as pd
  File "/Users/amit/anaconda2/envs/python36/lib/python3.6/site-packages/pandas/__init__.py", line 23, in <module>
    from pandas.compat.numpy import *
  File "/Users/amit/anaconda2/envs/python36/lib/python3.6/site-packages/pandas/compat/__init__.py", line 62, in <module>
    import http.client as httplib
ModuleNotFoundError: No module named 'http.client'

=============

编辑 1

按照@EvgenyPogrebnyak 的建议,我创建了一个名为py36 的新环境。我尝试从主目录运行 print 语句 python -c "import pandas as pd; print(pd.__version__)" 语句,或者实际上它运行正常的任何其他目录,但是当我从我的项目目录运行它时,我得到了这个特殊的错误,这很奇怪。

amit:~ $source activate py36
(py36) amit:~ $python -c "import pandas as pd; print(pd.__version__)"
0.23.0
(py36) amit:~ $cd Work/ml/marl/
(py36) amit:~/Work/ml/marl $python -c "import pandas as pd; print(pd.__version__)"
Traceback (most recent call last):
  File "/Users/amit/anaconda2/envs/py36/lib/python3.6/site-packages/pandas/compat/__init__.py", line 49, in <module>
    import __builtin__ as builtins
ModuleNotFoundError: No module named '__builtin__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/amit/anaconda2/envs/py36/lib/python3.6/site-packages/pandas/__init__.py", line 23, in <module>
    from pandas.compat.numpy import *
  File "/Users/amit/anaconda2/envs/py36/lib/python3.6/site-packages/pandas/compat/__init__.py", line 62, in <module>
    import http.client as httplib
ModuleNotFoundError: No module named 'http.client'

【问题讨论】:

  • import __builtin__ 在 python 3.6 中无效,你可以看到一些discission here。您似乎在尝试在 3.6 下运行的 python 2.7 中有一些脚本?这句话似乎很可疑:我已经在 anaconda 2 中安装了 python 3.6 作为单独的环境。 - 你到底做了什么?我的建议是在新目录中使用pipenv pipenv --python 3.6 + pipenv instpall pandas
  • @EvgenyPogrebnyak 我之前已经讨论过这个问题,但我不知道该怎么做。因为我只是在导入熊猫,内部可能正在使用 __builtin__ 。为了安装 python 3.6,我遵循了this 指南。
  • 由于某种原因,您似乎拥有 2.7 版的 python 3 解释器和 pandas。您是否在安装 pandas 和运行脚本之前激活了新环境?
  • @EvgenyPogrebnyak 是的,我做到了。事实上,我卸载了它,然后再次安装它以确保。
  • 请看答案中的代码,可以复制吗?

标签: python pandas anaconda conda


【解决方案1】:

我认为下面的代码应该运行。退出环境是你在跑步之前合而为一。

conda create -n new1 python=3.6 pandas
source activate new1
python --version
# expected:
# Python 3.6.0 :: Anaconda 4.3.0 (32-bit)
python -c "import pandas as pd; print(pd.__version__)"
# expected '0.22.0',but more importantly this shows pandas in imported

这会运行吗?您可以使用conda install -n new1 &lt;package&gt; 安装更多库,然后尝试:

python /Users/amit/Work/ml/marl/nameserver.py

pipenv 可以达到类似的结果。

【讨论】:

  • 据我了解,您似乎正在创建一个新环境并在其中安装库。好吧,我尝试了您的代码,但问题仍然存在。
  • python -c "import pandas as pd; print(pd.__version__)"的作用(错误信息)是什么?
  • 我得到了一个奇怪的结果。我已经相应地更新了答案。
  • 你的依赖列表是什么?作为 requirements.txt 或 piplock 文件。你能提供最小的代码来复制你的错误吗?有可能存在可能导致熊猫降级的软件包。
猜你喜欢
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2019-03-28
  • 2017-12-30
  • 1970-01-01
相关资源
最近更新 更多