【问题标题】:Package installed by Conda, Python cannot find itConda安装的包,Python找不到
【发布时间】:2016-10-01 22:10:59
【问题描述】:

我尝试安装 Anaconda 的 Theano。它可以工作,但是当我输入 python -i 时,import theano 显示No module named 'theano'。我是否需要切换另一个 Python 解释器,如何?另外,对于 conda 安装的包,如果我不重复安装它们,我可以在 Python 中找到吗? Python 与 Anaconda 的 Python 有什么关系?谢谢!!!

【问题讨论】:

  • 你说“它有效” - 你是什么意思?安装有效,还是使用 theano 有效?通过在命令行上运行python 得到什么版本的 Python - 打印出的标题的全文 是什么?最后,您使用的是什么操作系统?
  • 安装成功,但是在python中找不到theano包。我用的python是3.5,32位,Anaconda是最新的,32位的。操作系统是 Windows 10。如果我输入 {pip install theano},它会出现 {Requirement already compatible (use --upgrade to upgrade): theano in d:\anaconda3\lib\site-packages}。谢谢! @MattDMo
  • 请在python中运行以下命令:import sys; print(sys.path),看看是否包含D:\Anaconda3\lib\site-packages
  • 在我将它添加到 PYTHONPATH 之后,import theano 起作用了!虽然在安装过程中似乎还有其他问题,但发现Theano do not support Python 3.5 on Windows.MingwPython3.5* 存在冲突。请问如何同时安装python2.7和python3.5并参考?非常感谢! @MattDMo
  • conda update --all 为我解决了不同包但同样问题的问题。

标签: python anaconda theano conda


【解决方案1】:

我遇到了类似的问题,尝试安装 folium。如果您使用的是Anaconda

当你使用conda install -c conda-forge folium安装时,包会放在:

./anaconda3/envs/[name env]/lib/python3.7/site-packages/folium

当你使用 pip 安装时(激活了 anaconda env)pip install folium,包将被放置在:

./anaconda3/lib/python3.7/site-packages/folium

Python首先使用sites-packages作为手动构建python包的目标目录。当您从源代码构建和安装 python 包时(使用 distutils,可能通过执行 python setup.py install ),默认情况下,您会在 site-packages 中找到已安装的模块。

在这种情况下,您有两个位置:/anaconda3/lib/python3.7/site-packages//anaconda3/envs/[name env]/lib/python3.7/site-packages/

首先,这些模块将默认在/anaconda3/lib/python3.7/site-packages/ 中可用。有时(我真的不知道为什么)sites-packages conda env 中的模块在不导出 PATH 的情况下无法自动导入。

所以,要解决这个问题,你有两个选择:

  • 使用pip install folium 安装并导入folium(不需要通过conda install 安装),或者

  • 在 conda install 之后,运行conda init,关闭终端并打开一个新终端。所以,尝试再次导入。

Here are 关于在 conda 环境中使用 pip 的一些提示。

【讨论】:

  • 如果有像我一样使用 miniconda3 的人来到这里,您需要将 /miniconda3/pkgs 添加到路径中。
  • 对于使用 miniconda3 的任何人,请确保您的 python 指向 miniconda3/envs//bin/python
【解决方案2】:

您可以通过在 .py 文件的第一行使用以下内容来引用特定版本的 python 这适用于 python 2.7

#!/usr/bin/env python2.7

这适用于 python 3

#!/usr/bin/env python3

正如其他用户已经指出的那样,您需要检查您的模块是否包含在您的系统路径中。使用代码:

import sys
print(sys.path)

如果没有,您可以使用以下命令将其包含在您的 sys.path 中:

sys.path.append('/path/to/the/folder/of/your/module/file')

或将其放在默认的 PYTHONPATH 本身中。

其他很好的答案: https://stackoverflow.com/a/19305076/5381704

【讨论】:

  • 是的。而且Anaconda中也有Python,当我输入Python时,我运行的是哪一个?由于我在 PYTHONPATH 中添加了 Anaconda,它们是否相互共享包?不同软件包的系统要求如何,例如Python2.7 一个,Python3.5 一个?我只是对不同的版本及其应用程序感到困惑。谢谢!
  • 当你输入 PYTHON 时,你使用的是 python 2.7
【解决方案3】:

问题是在您使用的代码编辑器中,您运行的是默认解释器。根据您的代码编辑器,将 python 解释器更改为 conda 解释器即可。

【讨论】:

    【解决方案4】:

    在我的工作站中,我能够使用两种不同的方式解决 No module named <module name> 错误。

    第一种方法,我暂时解决了这个问题:

    (1) 打开终端
    (2)$ conda activate <Conda environment name>
    (3)$ export PYTHONPATH=/home/<user name>/anaconda3/envs/<Conda environment name>/lib/<Python package version>/site-packages:$PYTHONPATH

    这是一个临时解决方案。每当您运行虚拟环境时,您都必须这样做。

    我的运行环境:
    操作系统:Unbuntu 18.04
    康达版本:4.8.2
    Conda 构建版本:3.18,11
    Python 版本 3.7.6.final.0

    第二种方法,我删除了bashrc文件中的
    alias python=/usr/bin/python3.6行。
    如果虚拟环境中的 Python 版本不同,则此行会以某种方式阻止使用安装在 Anaconda 虚拟环境中的 Python 工具。

    【讨论】:

      【解决方案5】:

      在我的情况下,这是因为 conda 搞砸了环境变量。它没有使用特定于环境的pythonpip,而是使用全局安装的。

      解决方案:

      conda deactivate your-env
      conda activate your-env
      

      【讨论】:

        猜你喜欢
        • 2017-10-16
        • 1970-01-01
        • 2020-01-25
        • 2016-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-09
        • 1970-01-01
        相关资源
        最近更新 更多