牛骨文教育服务平台(让学习变的简单)
博文笔记

Python 之 ImportError: No module named ***

创建时间:2015-08-06 投稿人: 浏览次数:3457

如果想使用非当前模块中的代码,需要使用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.py") # 这个例子针对 windows 用户来说的 
大多数情况,上面的代码工作的很好。但是如果你没有发现上面代码有什么问题的话,可要注意了,上面的代码有时会找不到模块或者包(ImportError: No module named xxxxxx),这是因为: 
sys模块是使用c语言编写的,因此字符串支持 " ", " ", " "等来表示特殊字符。所以上面代码最好写成: 
sys.path.append("c:\xxx\b.py") 
或者sys.path.append("c:/xxxx/b.py") 

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


如何将路径添加到sys.path?

sys.path是python的搜索模块的路径集,是一个list

可以在python 环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失了!

可以使用以下命令输入当前python 的搜索路径:

python -c"import sys;print "当前的python是:"+sys.prefix;print " ".join(sys.path)"

练习使用sys.path.append方法添加路径,显示退出python会消失!

python -c"import sys;print "当前的python是:"+sys.prefix;sys.path.append(r"E:DjangoWord");print " ".join(sys.path)"

再次运行,会发现 自己添加路径E:DjangoWord()不存在了!

python -c"import sys;print "当前的python是:"+sys.prefix;print " ".join(sys.path)"


如何将路径永久添加到sys.path?

详址:http://my.oschina.net/leejun2005/blog/109679


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。