python导入第三方模块(1)

转载:https://www.crifan.com/python_import_modules_under_sub_folders/

**重点内容**

【问题】

之前导入另外一个Python模块,包括自己的模块,都是直接通过 import 模块文件名,即可实现导入。

后来想要把多个子模块都放到当前文件夹下面的某个子文件夹中,但是却不知道如何导入了。

【解决过程】

1.通过类似于

import subFolder/subModule

是无法导入的,因为不支持这种写法。

2.后来看到python怎么import指定文件夹下的模块,才知道,原来可以通过把对应路径加入到os的path中即可。

3.后来就去将自己的BlogsToWordpress中的众多博客的模块py文件都移至到一个子文件夹libs/blogModules中了:

libs中有:

crifanLib.py
BeautifulSoup.py

libs/blogModules中有:

BlogNetease.py
BlogBaidu.py
BlogSina.py
BlogQQ.py
BlogRenren.py
BlogCsdn.py
BlogSohu.py
BlogBlogbus.py

这样,对应代码本来是:

import os;
import re;
import sys;
import math;
......

import crifanLib;

import BlogNetease;
import BlogBaidu;
import BlogSina;
import BlogQQ;
import BlogRenren;
import BlogCsdn;
import BlogSohu;
import BlogBlogbus;

改为对应的:

import os;
import re;
import sys;

sys.path.append("libs");
sys.path.append("libs/blogModules");

import math;
......
import crifanLib;

import BlogNetease;
import BlogBaidu;
import BlogSina;
import BlogQQ;
import BlogRenren;
import BlogCsdn;
import BlogSohu;
import BlogBlogbus;

就可以实现将各个子模块BlogBaidu,BlogNetease等都正常导入了。

【总结】

1.如果第三方库,和当前python脚本都在同一个文件夹下面,那么直接通过 import xxx,即可导入,即可使用第三方库。

2. 如果第三方库,在别的路径下,比如此处在子文件夹下,那么可以通过将其路径添加到os.path中方法:

sys.path.append(文件夹路径);

实现让python可以找到对应的库,实现可以导入并使用第三方库的目的。

3. 需要注意一点的是,需要自己保证导入的各个模块之间,以及和系统模块之间,没有出现重名的模块,就行了。

**************************************

【问答:】在引入模块的时候发生了什么

  先看一个例子,在文件test.py中的代码:

#test.py

def display():
    print 'hello world'

display()
    

  在test1.py中引入模块test:

#test1.py

import test

  然后运行test1.py,会输出”hello world”。也就是说在用import引入模块时,会将引入的模块文件中的代码执行一次。但是注意,只在第一次引入时才会执行模块文件中的代码,因为只在第一次引入时进行加载,这样做很容易理解,不仅可以节约时间还可以节约内存。

你可能感兴趣的:(python)