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


Posted in Python onJanuary 19, 2019

方法一:函数添加

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 相关文章推荐
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
python3 线性回归验证方法
Jul 09 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
python ubplot使用方法解析
Jan 10 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 #Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 #Python
在pycharm 中添加运行参数的操作方法
Jan 19 #Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 #Python
Pycharm以root权限运行脚本的方法
Jan 19 #Python
Python自定义一个类实现字典dict功能的方法
Jan 19 #Python
解决pycharm工程启动卡住没反应的问题
Jan 19 #Python
You might like
PHP学习笔记(二):变量详解
2015/04/17 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
2020/09/13 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python实现BackPropagation算法
2017/12/14 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Pytorch之保存读取模型实例
2019/12/30 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
党支部公开承诺践诺书
2014/03/28 职场文书
建筑工地质量标语
2014/06/12 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
javascript对象3个属性特征
2021/11/17 Javascript