在本地机器上跑python代码,本身定义的文件进行导包运行是没有问题,可是放到linux服务器上的时候就会提示 ImportError:No module named xxxx(要导入的文件包名)python
在python导包的时候有三条铁规:linux
1. 严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。若是没有__init__.py,那么就是普通的文件夹。服务器
2. 导入package。 在python 安装目录的site-package文件夹中新建xxx.pth,内容是须要导入的package所在的文件夹路径。app
3. 导入模块。就是通常的模块导入写法,注意只要包路径,不要文件夹路径。python2.7
解决办法:spa
1.找到你的python安装路径,个人是在 /home/jianping/env/lib/python2.7code
2.进入python安装路径的site-packages下。即: /home/jianping/env/lib/python2.7/site-packagesit
3.建立一个后缀为.pth的文件:touch xxx.pthclass
4.编辑该pth文件:vi xxx.pthimport
5.将你要导入的包的绝对路径写入到xxx.pth文件中。(注意:必定要是绝对路径,而且要导入的包须要有__init__.py文件)
例如:
/home/jianping/work/package(package是要导入的包)
事例二:
经过sys.path.append('要导入的路径')解决
import sys,os
print os.path
sys.path.append('/home/jianping/work/judgements_list/pro_judgements/conf/cfg')
from hub import CFG