Python Import Error的问题的解决

首先我们需要明确python是如何导入模块的。

python在导入模块时的搜索路径:

1)、程序的主目录

2)、PTYHONPATH目录(如果已经进行了设置)

3)、标准连接库目录(一般在/usr/local/lib/python2.X/)

4)、任何的.pth文件的内容(如果存在的话).新功能,允许用户把有效果的目录添加到模块搜索路径中去

.pth后缀的文本文件中一行一行的地列出目录。

这四个目录组合起来就是这四个组合起来就是sys.path。查看sys.path

import  sys

print(sys.path)


在python的工程中,有时会遇到文件无法引用的情况。此时Pycharm ide

支持文件跳转,可是当项目运行时,却提示找不到模块,针对这种情况我们的解决方法如下。

解决:

1、在py文件的顶部,引入根目录。

import os

import sys

curdir = os.path.dirname(os.path.abspath(__file__))

sys.path.append(os.path.dirname(curdir))


2、检测文件项目的根目录。


Python Import Error的问题的解决_第1张图片

3、python中有一个.pth文件,该文件的用法是:

首先xxx.pth文件里面会书写一些路径,一行一个。

将xxx.pth文件放在特定位置,则可以让python在加载模块时,读取xxx.pth中指定的路径。

如此一来就可以很简便的书写import语句,且灵活控制自己写的模块了。例如:

先将myproj的路径加入到myproj.pth文件中,再讲myproj.pth文件放置在__特定目录中__,然后再项目的代码中,无论哪个目录层级,都可以直接使用:

from myproj import conf

from myproj.lib import xlib

上面提到的__特定目录__是通过site模块下的getsitepackages方法获得的,该方法返回一个路径组成的list:


>>> import site

>>> site.getsitepackages()

['/opt/python27/lib/python2.7/site-packages', '/opt/python27/lib/site-python']

你可能感兴趣的:(Python Import Error的问题的解决)