在本地機器上跑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