假设想使用非当前模块中的代码,须要使用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') # 这个样例针对 windows 用户来说的 

大多数情况。上面的代码工作的非常好。可是假设你没有发现上面代码有什么问题的话,可要注意了,上面的代码有时会找不到模块或者包(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)设置。



怎样将路径加入到sys.path?

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

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

能够使用下面命令输入当前python 的搜索路径:

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

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

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

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

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

怎样将路径永久加入到sys.path?

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

Python 之 ImportError: No module named ***的更多相关文章

  1. python 关于 ImportError: No module named 的问题

    转载自:http://my.oschina.net/leejun2005/blog/109679 今天在 centos 下安装 python setup.py install 时报错:ImportEr ...

  2. [Python]CentOS - ImportError: No module named '_curses'

    网上搜了不少答案, 基本都是说Windows环境下curses包不适用的问题. 作为碰到这个问题的linux用户,实在感到无奈. 起因是在CentOS上部署uwsgi,想要使用uwsgitop来监控. ...

  3. python错误 ImportError: No module named setuptools 解决方法[转]

    在python运行过程中出现如下错误: python错误:ImportError: No module named setuptools这句错误提示的表面意思是:没有setuptools的模块,说明p ...

  4. Python错误“ImportError: No module named MySQLdb”解决方法

    这个错误可能是因为没有安装MySQL模块,这种情况下执行如下语句安装: pip install MySQLdb 如果安装时遇到错误“_mysql.c:29:20: 致命错误:Python.h:没有那个 ...

  5. 初识python 之 ImportError: No module named _ssl

    场景 安装好python之后,导入ssl模块报错: ImportError: No module named _ssl 解决方法 查看openssl.openssl-devel是否安装 rpm -qa ...

  6. Python (Windows) - ImportError: No module named win32service

    ImportError: No module named win32service you have to install pypiwin32

  7. Python执行ImportError:No module named MySQLdb异常

  8. Python Error: “ImportError: No module named six”,用自动安装解决依赖问题

    在初次运行带有matplotlib包的程序时,被告知了缺少模块(如标题所示).搜索调查后发现在自己安装的python中确实缺少此安装包,接下来,进行了下载.安装.运行,又少了一个模块,再下载.再运行, ...

  9. python打怪之路【第二篇】:ImportError: No module named setuptools

    在python安装第三方模块时出现如下错误: python错误:ImportError: No module named setuptools这句错误提示的表面意思是:没有setuptools的模块, ...

随机推荐

  1. 关于 easyui datagridfilter 中的combox 过滤

    var_activitimodel_datagrid.datagrid({ singleSelect: true, fit: true, striped: true, fitColumns: fals ...

  2. 【前端自动化构建 grunt、gulp、webpack】

    参考资料: 用自动化构建工具增强你的工作流程!:http://www.gulpjs.com.cn/ gulp详细入门教程:http://www.ydcss.com/ JavaScript构建(编绎)系 ...

  3. PhantomJS用法示例

    收录待用,修改转载已取得腾讯云授权 前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS ...

  4. angular directive 的controllerAs的用法

    原文: https://stackoverflow.com/questions/31857735/using-controlleras-with-a-directive --------------- ...

  5. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之功能实现

    前言:前一篇温习了网站开发需要掌握的基础知识,这一篇重点梳理一下各个功能模块的[详细设计与实现].项目github地址:https://github.com/66Web/php_book_store, ...

  6. Windows内核之线程简单介绍

    1 线程定义 <1> 内核对象,操作系统用它来对线程实施管理.内核对象也是系统用来存放线程统计信息的地方 <2>还有一个是线程堆栈.它用于维护线程在运行代码时须要的全部函数參数 ...

  7. Node.js meitulu图片批量下载爬虫1.06版

    //====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...

  8. Win7如何查看自己得Win7版本号

    如何查看Windows 7详细系统版本号? --Windows 7系统知识100问之七十一 责任编辑:姜惠田作者:IT168 老姜   2009-08-05 前言:微软新一代操作系统Windows 7 ...

  9. IT痴汉的工作现状21-Android开发前景论

    饭间闲谈 齐天.周权和我是饭搭子.总是边吃边聊一些与技术.汽车和女人相关的话题. "前阵子Nokia裁员之事不知道完没完?这艾洛普挺能作啊."我吃着香喷喷的过桥米线说." ...

  10. 修改 Ubuntu 13.04 LAMP 服务器端口号

    因为今天想让一台Ubuntu 13.04服务器对外 web 服务的端口号为8000,自己改了一下,但是就是无法访问,端口后依然为 80.所以在网上找了一下修改端口的办法,原来我还少修改了一个文件,这里 ...