| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 浅谈pycharm和终端下的ModuleNotFoundError -> 正文阅读 |
|
[开发工具]浅谈pycharm和终端下的ModuleNotFoundError |
? ? ? ? 最近看到不少人都在询问,为啥pycharm下运行没问题,代码一放到终端下运行就报ModuleNotFoundError: No module named ‘****’ 错误。其实这是个很基础的设置问题,可能也是过于基础,很多人并没有那么关注,以致于出错时总是先责怪pycharm。下面我们就说简单梳理一下。 工作目录(working directory)首先,这里先介绍一个概念。工作目录,所有计算机语言在运行时都会有一个本地磁盘工作主目录(工作空间),python也不例外。和大多数语言一样,代码的运行入口所在的py文件所属的目录被默认为项目的运行工作目录,在运行过程中,调用不同的代码模块或不同的包时,涉及路径问题,皆以工作主目录为基础。 具体的工作目录可以通过执行:os.getcwd()方法打印输出。 下面我们用一个简单的例子测试一下:
项目结构如下: code1.py的代码内容:
?code2.py的代码内容:
?main.py的代码内容:
pycharm上直接运行main.py文件(不要疑惑代码只有两个from import也能运行),打印结果如下: 和预期结果是一致的,两个不同的包目录下打印出来的当前工作目录都是相同的,都是运行入口代码main.py所有的目录:E:\codes\hello_dir。 下面我换种玩法,换一个运行入口。把code1.py代码修改为如下:
在pycharm上运行code1.py,结果如下: 从打印内容可以看到,当前工作主目录为E:\codes\hello_dir\package1,也就是说运行过程中调用到code2.py时,code2.py也是和code1.py一样在同一个主工作目录E:\codes\hello_dir\package1下运行的。 所以说,项目的工作目录决定于程序运行的入口代码文件所在的目录。 import模块或包还是上面的代码,没做任何改变,换种运行方式,电脑上打开cmd,切换到目录E:\codes\hello_dir\package1,执行python code1.py,结果如下: 看到这结果是不是很意外,刚才在pycharm上运行明明没有异常的。? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/23 9:55:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |