python添加模块搜索路径和包的导入方法

yipeiwu_com6年前Python基础

方法一:函数添加

1 import sys

2 查看sys.path

3 添加sys.path.append("c:\\")

方法二:修改环境变量

w用户可以修改系统环境变量PYTHONPATH

方法三:增加.pth文件,推荐!

在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。

1 windows

c:\python27\site-packages

# 我们的学员把pth文件直接放在c:\python27

# (或其他python安装目录)目录下测试也是有效的

# 2015.9.23

2 linux(ubuntu)

/usr/local/lib/python2.7/dist-packages (note by shanql, 我是放在这个目录下有效的,所添加的目录一定要存在,不存在则会不成功)

2 linux(redhat)

/usr/lib/python2.7/site-packages

包的调用

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。

python添加模块搜索路径和包的导入

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。

跨包调用(当前目录下有modulepack1包):

from modulepack1[.modulepack2] import module

如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。

import一个包名,就等于执行了这个包下的__init__文件。

示例:

python添加模块搜索路径和包的导入

在nod1里import hello是找不到的,需要手动添加包路径,如果找到那是因为pycharm给加了不必要的路径,以命令行执行为准。

import sys,os
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #__file__获取执行文件相对路径,整行为取上一级的上一级目录
sys.path.append(BASE_DIR)  #添加路径
import hello
hello.hello1()

模块调用测试

if __name__=='__main__':  #__name__方法判断
  print('ok')

在一个py模块直接执行print(__name__)会输出__main__,表示当前这个文件属于执行文件,如果从其他的py模块中导入一个py模块,执行被导入的py模块中的print(__name__)会输出被导入的模块的模块名称,那么if判断就不会成功,所以导入的时候不会执行判断内的代码。

主要用在调试功能,即一个模块被调用的时候不执行内容,而自己调试模块的时候可以顺利的执行模块内容。

以上这篇python添加模块搜索路径和包的导入方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

调试Python程序代码的几种方法总结

程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些...

django开发之settings.py中变量的全局引用详解

django开发之settings.py中变量的全局引用详解

本文主要介绍的是django中settings.py中变量的全局引用的相关资料,下面话不多说,来看看详细的介绍吧。 前言 在settings.py中添加自定义变量,可以通过setting...

使用django-crontab实现定时任务的示例

今天打算在自己的 Django 应用中添加一个定时任务来定时执行一些定期检查的功能,因此想到了使用 django-crontab 插件可以满足我的需求,下面就是这个插件的使用方法。 首先...

python利用dlib获取人脸的68个landmark

(1) 单人脸情况 import cv2 import dlib path = "1.jpg" img = cv2.imread(path) gray = cv2.cvtColo...

python使用pil进行图像处理(等比例压缩、裁剪)实例代码

PIL中设计的几个基本概念 1.通道(bands):即使图像的波段数,RGB图像,灰度图像 以RGB图像为例: >>>from PIL import Image &...