【问题标题】:Python calling modules difference between command line and spyderPython调用模块在命令行和spyder之间的区别
【发布时间】:2020-06-18 05:40:20
【问题描述】:

我刚开始将 python 添加到我的曲目中,仍然需要大量学习。

当我从 spyder 调用 .py 模块时,spyder 会自动知道转到我在 C 驱动器上工作的位置,并且导入和运行没有问题。

但是当我从命令行调用时,与我在 spyder 中所做的完全一样,我收到一个错误,说它找不到模块。为什么会这样,为什么两者不同?

    C:\WINDOWS\system32>python import script1b
    python: can't open file 'import': [Errno 2] No such file or directory

编辑1:我也尝试了以下

    C:\WINDOWS\system32>python
    Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    >>> import script1b.py
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ModuleNotFoundError: No module named 'script1b'

编辑: 我读了@nanna 的帖子,感觉回答了我的问题。我是一名学习编码的工程师,而不是软件开发人员。我可以关注另一篇文章,安装文件等以供命令提示符使用,我之前使用 pip install 的 Gitlab 工具使用其他人的代码做过类似的事情。我实际上是在尝试更多地了解模块的工作原理,以便我可以开始自己构建它们。我正在参考 Mark Lutz 的教科书 O'Reilly 'learning python'。引用的帖子似乎与教科书告诉我的内容不同,我可以通过 Windows 的命令提示符进行操作。它的第 68 页为可能碰巧拥有它的任何人导入和重新加载基础知识。

我创建了一个包含我的 python 代码的文本文件,将其命名为 .py,并且能够在 spyder 中打开和执行。只是想知道 Sypder 之间有什么区别,似乎更多地涉及使用命令提示符。但是,我的教科书告诉我,我应该能够从命令提示符运行相同的文本文件,这比帖子中概述的要容易得多。

%python
>>> import script1

实际上它告诉我我可以在命令提示符下,在交互式会话中使用,这是直接从书中复制的。

【问题讨论】:

  • 这能回答你的问题吗? Module Not Found Error: No module named 'src'
  • 嘿,我阅读了相关帖子,但我仍然不确定。我想知道为什么可以直接从 spyder 运行文本文件,但不能用于命令提示符。
  • 如果 python 搜索的位置之一指向脚本,您可以在交互式会话中运行“import script1”。如果不是,您必须包含它的路径。我不熟悉 spyder,但我猜它对知道在哪里寻找脚本有某种魔力。

标签: python spyder


【解决方案1】:

您需要在命令行中运行 python 才能进行导入。首先,只需键入python 并按回车键,然后在 python 运行后尝试导入。以下来自 mac 终端,但可能会帮助您了解这个想法:

Nannas-computer:somefolder someuser$ python
Python 2.7.16 (default, Dec  3 2019, 07:02:07) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import script1b

只是为了澄清; import 用于导入 PYTHONPATH 上的模块,例如已安装的包或您创建的脚本。你可以在你正在编写代码的文件中使用它,或者直接进入你正在运行的 python 实例,就像上面描述的那样。

对于安装包,使用例如pip,并为您从事的每个项目使用虚拟环境。

【讨论】:

  • 我以为我这样做是因为我在导入命令之前输入了“python”?
  • 是的,所以导入模块是为了在你正在编写的代码(文件顶部的'import script1b')或正在运行的python实例中使用已经安装的包(例如在终端中启动 python 进行快速计算或测试代码 sn-ps 时)。但是我感觉您正在尝试安装软件包,这是真的还是您已经安装了 scriptb1 并想要导入它?
  • import is for importing modules from packages that have already been installed into your python stack import 用于导入PYTHONPATH上的模块,比如上例中他自己的脚本,不一定是安装到他的python环境中的代码
  • 所以首先我应该安装它把它放在'python路径'上?
  • 类似 ''' pip install script1b.py''' ?
猜你喜欢
  • 1970-01-01
  • 2019-07-19
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
相关资源
最近更新 更多