在启动脚本时收到错误:“ModuleNotFoundError”

对于许多人来说,这似乎是一个常见问题,当通过“ pip install module_xxx”导入本地机器上缺少 Python 模块时,默认情况下它们不与Spyder链接。

但是今天我提出了一个快速的技巧来处理这个问题,以获得基本和快速的解决方案。(当您知道如何制作时总是很容易,对吧:) ?)

实际上,在Spyder“Tool/PYTHONPATH manager”上设置本地机器通过pip下载和存储已安装模块的路径就足够了,保存,关闭并重新启动Spyder

容易,不是吗?:) 这里有一些截图指导:

虽然一旦您熟悉它就相对简单,但 Spyder 与其他包和环境之间的交互有时会让初次用户感到困惑。Spyder 的改进使这个过程变得更加容易(而且还有更多!),但我们想澄清这种关系是如何运作的。

我们将首先帮助您调试 Python 中处理包和环境时遇到的常见问题,即即使您确定已安装模块也无法导入。接下来,我们将指导您设置 Spyder 环境以改进您的工作流程。如果您正在寻找一种在不同环境中使用 Spyder 的方法(例如一个用于简单数据分析、一个用于机器学习、一个用于开发应用程序等),您可以直接转到最后一部分。

  • 最常见的问题:在 Spyder 中使用新安装的包
  • 将软件包安装到与 Spyder 相同的环境中
  • 使用其他环境和 Python 安装
    • 天真的方法
    • 模块化方法

最常见的问题:在 Spyder 中使用新安装的包

fooSpyder 之外安装一个包(我们称之为)后,用户在尝试将它导入到 IDE 中时可能会遇到错误:

在[ 1 ]:进口 FOO
回溯(最 近期的 通话 最后):文件 "<ipython-input-4-7f58dd7fb72e>",第 1行,在 < module > import  fooModuleNotFoundError :没有 名为“foo”的模块  

发生这种情况是因为foo安装(使用condapip)在与 Spyder 当前运行的环境不同的 conda 或 venv/virtualenv 环境中。

要确认这是问题所在,您需要:

  1. 激活环境(例如 myenv在其中安装的包)foo例如具有conda activate myenv供康达,source myenv/bin/activateworkon myenv为的virtualenv / VENV,等等)。

  2. 通过运行命令在那里启动 Python 解释器python

  3. 在 Python 解释器中运行以下命令:

    导入 系统;系统。可执行文件

  4. 启动 Spyder 并在控制台中运行与步骤 3 中显示的相同的命令。

  5. 如果生成的路径相同,则 Spyder 和包在同一环境中,import foo不应产生错误(否则可能存在与您的安装无关的问题)。

  6. 如果生成的路径不同,那么您有三个选择:

    • 激活安装 Spyder 的环境并在其上安装您的软件包(请参阅下一节)。如果您尝试在另一个环境(如myenv)中安装未来的软件包,您将获得相同的ModuleNotFoundError.
    • 将 Spyder 安装到现有myenv环境或任何其他您想在其中工作的环境中,然后从那里运行它(请参阅以下部分)。这比第三个选项稍微简单一些并且具有相同的效果,但是开销更大并且灵活性较差。
    • 只将spyder-kernels包安装到myenv环境中,并在 Spyder 的首选项中设置 Python 解释器路径以指向myenvPython 可执行文件(请参阅最后一节。这需要 Spyder >=3.3.0 和一个更多的初始步骤,但需要较少的维护长期运行并避免重复安装 Spyder。

将软件包安装到与 Spyder 相同的环境中

Spyder 是一个 Python 包,就像您可能习惯的任何其他包一样,因此您可以import在其控制台编辑器中使用任何包,就像在 Spyder 环境中启动的常规 Python 或 IPython 终端一样:

  • 如果 Spyder 与 Anaconda 一起安装(我们推荐)并通过快捷方式从 Anaconda Navigator 或从 Anaconda Prompt 启动而无需修改任何内容,这将是默认的baseAnaconda 环境。
  • 如果 Spyder 是通过pip(仅限专家)安装而不是安装到virtualenv/ 中venv,则这通常是 Python 安装pip本身所属的任何东西。
  • 如果您使用系统包管理器(apt-getdnfemerge等)来安装 Spyder,这通常是您的系统 Python 及其包库。
  • 如果您将 Spyder 安装到特定环境(conda-envvenv),或者它带有预配置的环境(如 Keras 或 TensorFlow 的那些)并从那里启动它,则它只能访问来自该环境的包。

因此,如果您想在现有的 Spyder 安装中使用包(例如,将其导入脚本、包或 Spyder IPython 控制台),最简单的方法是将包安装到您所在的相同环境中。已安装 Spyder,通常采用与安装 Spyder 相同的方式(condapip、包管理器等)。但是,如果您使用pipconda-forge、Github 或自定义渠道安装软件包、同时处理多个主要项目、使用预构建的环境或有更复杂的需求,您可能希望使用一个或多个单独的环境来满足您的需求。包。如果是这样,下一节将解释如何操作。

使用其他环境和 Python 安装

如果您有一个现有的预配置环境(例如 Keras 或 TensorFlow),正在管理多个环境(例如用于开发或测试目的),或者甚至想在完全独立的 Python 安装中工作,就像 Spyder安装(例如系统安装的 Spyder 与单独的 Anaconda 安装,反之亦然),您有两个主要选择:

天真的方法

要在另一个环境中使用 Spyder,最简单的方法是将它直接安装到您希望在其中使用软件包的环境中,然后从那里运行它。这适用于所有 Spyder 版本,安装 IDE 后不需要额外配置;然而,它导致需要管理多个安装,并且不像替代方案那样灵活或可配置。因此,在处理多种环境时,我们建议 采用模块化方法。

模块化方法

从 Spyder 3.3.1开始,您可以将模块化spyder-kernels包安装到您希望工作的任何 Python 环境(conda环境、virtualenv/venv系统 Python、WinPython)中,然后将 Spyder 在其 IPython 控制台上使用的 Python 解释器更改为指向到该环境的 Python 可执行文件。

这需要少量的准备和配置,但比将 Spyder 完整安装到该环境中要“轻得多”和更快,避免了依赖冲突,并开辟了新的工作流程可能性。

为此,请执行以下步骤:

  1. 激活的环境(例如, myenv在其中你想工作()conda activate myenv用于畅达,source myenv/bin/activateworkon myenv为的virtualenv / VENV,等等

  2. spyder-kernels使用以下命令在那里安装软件包:

    • conda install spyder-kernels 如果使用 conda/Anaconda,

    • pip install spyder-kernels 如果使用 pip/virtualenv。

  3. 通过任一方法安装后,在同一环境中运行以下命令:

    python  - c  “导入系统;打印(sys.executable)”

    和复制由命令返回的路径(它应该结束pythonpythonwpython.exe或者pythonw.exe,根据您的操作系统上)。

  4. 停用该环境,激活安装了 Spyder 的环境(如果您已将其安装在其自己的环境中),然后像往常一样启动 Spyder。

  5. Spyder 启动后,导航到Preferences > Python Interpreter > Use the following interpreter步骤 3 中的路径并将其粘贴到文本框中。

  6. 启动一个新的 IPython 控制台。安装在您myenv环境中的所有软件包都应该在那里可用。如果使用 conda,则当前环境的名称及其 Python 版本应显示在 Spyder 的状态栏中,将鼠标悬停在其上应显示所选解释器的路径。

笔记:

  • 为了让变量资源管理器能够显示特定数据类型(Numpy 数组、Pandas Series/DataFrame 等)的内置编辑器,需要在 Spyder 的环境中安装相应的可选 Spyder 依赖项(Numpy、Pandas 等),不仅仅是 IPython 控制台工作环境。此外,对象资源管理器中显示的第三方包提供的自定义类目前也需要这样做,尽管未来的 Spyder 版本可能会删除后一个限制。
  • 虽然没有它 Spyder 应该可以正常工作,但确保Spyder 环境中的 Python 次要版本(3.63.73.8等)与您的工作环境中的相匹配,如果可行,将最大限度地减少出现任何问题的可能性。

在 Spyder 中使用包和环境相关推荐

  1. 当装好anaconda的python3.7环境后,如何使的spyder运行在其中,anaconda中打不开spyder怎么办,spyder中导入不了opencv模块怎么办

    情况说明 1.默认的环境是base环境,通过某位大佬的博客:https://blog.csdn.net/ITLearnHall/article/details/81708148?depth_1-utm ...

  2. centOS6.5中部署java调用h2o中python包环境

    centOS6.5中部署java调用h2o中python包环境 升级centOS6.5中的python版本 6.5版本中自带了python2.6.6的环境,但对于使用h2o版本过低,建议升级至3.6或 ...

  3. spyder中安装第三方库的包

    最近遇到一个问题:在CMD命令窗口安装的python包,在anaconda中spyder编辑器中找不到已安装的python包,经过网上的资料查看,原来是因为,cmd中python包的工作路径与anac ...

  4. Anaconda创建、激活、退出、删除环境及管理环境中的包相关命令——最新全面直观版

    本博客基于Windows系统,以下命令建议在Anaconda Prompt命令行窗口中执行: 1.创建虚拟环境 使用 conda create -n your_env_name python=X.X( ...

  5. UE5和Blender中的完整场景环境创建学习教程

    UE5和Blender中的完整环境创建–深入课程 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确)|时长:80 ...

  6. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  7. suse linux c 编译环境,SUSE 11中安装GCC开发环境

    SUSE11中安装GCC开发环境 安装包下载网站:http://213.174.32.130/sles/distribution/11.0-SP1/repo/disk1/suse/x86_64/ RP ...

  8. 4.1 MyEclipse中搭建Struts2开发环境

    4.1 MyEclipse中搭建Struts2开发环境 (尊重劳动成果,转载请注明出处:http://blog.csdn.NET/qq_25827845/article/details/5320594 ...

  9. eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务

    转自:http://my.oschina.net/mkh/blog/340112 1 eclipse中hadoop环境部署概览 eclipse中部署hadoop包括两大部分:hdfs环境部署和mapr ...

最新文章

  1. xk3190串口通讯JAVA开发包_常用品牌plc通讯协议汇总学习
  2. c++ opencv实现区域填充_使用OpenCV实现图像覆盖
  3. Windows 2003 Server服务器上IIS发布网站具体步骤
  4. 25 abstract 抽象
  5. MapReduce入门和优化方案
  6. (Github)增强插件、脚本
  7. Whctf 2017 -UNTITLED- Writeup
  8. 博途调试g120_【免费资料】西门子变频器调试软件汇总
  9. Java List retainAll方法使用注意事项
  10. [常用工具] Python视频处理库VidGear使用指北
  11. mysql执行计划explain介绍_MySQL中的执行计划explain详解
  12. 火车票软件哪个好用_抢火车票软件哪个好 2019哪个软件抢火车票成功率高
  13. Firewall 防火墙常用命令
  14. 太突然!著名音乐人陈道明去世,死因曝光,刺痛全网……
  15. 【Matlab学习笔记】报错——检查对函数‘Link’的调用中是否缺失参数或参数数据类型不正确。
  16. 货郎担问题java算法_经典算法(1)---货郎担问题
  17. 超全!嵌入式系统词汇速查表
  18. 软件测试能干多久?测试员能干到多大年龄?
  19. 国密SM2前端加密,Java后台解密问题
  20. python 写入es_Python之利用Whoosh搭建轻量级搜索

热门文章

  1. Oauth2.0实现单点登录的原理流程,通俗易懂
  2. 学了一学期的C语言能干嘛,C语言实现显示汉字(bushi)
  3. C++利用重载函数实现复数的加减乘除运算
  4. python实战技能之数字求和
  5. 《Python3网络爬虫开发实战》学习笔记_P2
  6. 关于调用微信朋友圈分享及参数
  7. 抖音短视频服务器维护中无法打开,打不开抖音视频的解决办法
  8. 编写函数求字符串的长度
  9. 采购成本法下的成本动因
  10. 初识西门子Wincc OA——超大型/分布式SCADA