python - Python调用模块在命令行和spyder之间的区别
问题描述
我刚开始将 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
实际上它告诉我我可以在命令提示符下,在交互式会话中使用,这是直接从书中复制的。
解决方案
您需要在命令行中运行 python 才能进行导入。首先,只需键入python
并按 enter,然后在 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,并为您从事的每个项目使用虚拟环境。
推荐阅读
- amadeus - 艾玛迪斯 - 美国航空公司
- regex - 如何在不使用捕获组的情况下匹配第二次出现的字符串
- c# - NET Core:如何将多个服务注入控制器?
- c# - LiveCharts - 跨越缺失点连接
- linux - 如何监控正在运行的屏幕会话并在最后一个会话结束后开始新会话?
- linux - 您如何读取 SPDK 内部 NVME 设备上的封装温度?
- c# - VS2017调试Razor类库时csproj/sln路径名中不能有“#”号
- javascript - Puppeteer - 变量未在评估函数中传递
- entity-framework-core - 具有多种语法的 SQL 语句到 EF Core
- node.js - 在 Nodejs10.x 上带有 ImageMagick 层的 AWS Lambda 函数