博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无法import的原因(ImportError: No module named *****)
阅读量:5881 次
发布时间:2019-06-19

本文共 657 字,大约阅读时间需要 2 分钟。

python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用。

 

如果想使用非当前模块中的代码,需要使用Import,这个大家都知道。

如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比如在a.py中使用b.py:

import b

但是如果要import一个不同目录的文件(例如b.py)该怎么做呢?

首先需要使用sys.path.append方法将b.py所在目录加入到搜素目录中。然后进行import即可,例如

import sys

sys.path.append('c:\xxxx\b.py')

大多数情况,上面的代码工作的很好。但是如果你没有发现上面代码有什么问题的话,可要注意了,上面的代码有时会找不到模块或者包(ImportError: No module named xxxxxx),这是因为:

sys模块是使用c语言编写的,因此字符串支持 '\n', '\r', '\t'等来表示特殊字符。所以上面代码最好写成:

sys.path.append('c:\\xxx\\b.py')

或者sys.path.append('c:/xxxx/b.py')

这样可以避免因为错误的组成转义字符,而造成无效的搜索目录(sys.path)设置。

转载于:https://www.cnblogs.com/zmlctt/p/4208764.html

你可能感兴趣的文章
WPF 实现窗体拖动
查看>>
来自维基百科程序员Brandon Harris
查看>>
NULL不是数值
查看>>
CentOS 5 全功能WWW服务器搭建全教程
查看>>
30个优秀的后台管理界面设计案例分享
查看>>
scala111
查看>>
模块化服务规范——OSGI
查看>>
劣质代码评析——猜数字问题(上)
查看>>
纸上谈兵: 栈 (stack)
查看>>
Windows phone8 基础篇(三) 常用控件开发
查看>>
Oracle学习笔记之五,Oracle 11g的PL/SQL入门
查看>>
大叔手记(3):Windows Silverlight/Phone7/Mango开发学习系列教程
查看>>
考拉消息中心消息盒子处理重构(策略模式)
查看>>
so easy 前端实现多语言
查看>>
【追光者系列】HikariCP源码分析之ConcurrentBag&J.U.C SynchronousQueue、CopyOnWriteArrayList...
查看>>
在navicat中如何新建连接数据库
查看>>
canvas系列教程05-柱状图项目3
查看>>
css绘制几何图形
查看>>
HTML标签
查看>>
理解JS中的Event Loop机制
查看>>