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 相关文章推荐
Python实现一个简单的MySQL类
Jan 07 Python
Python标准异常和异常处理详解
Feb 02 Python
python正则表达式match和search用法实例
Mar 26 Python
Python导入txt数据到mysql的方法
Apr 08 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
Python requests库用法实例详解
Aug 14 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
QML实现钟表效果
Jun 02 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python3使用diagrams绘制架构图的步骤
Apr 08 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数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php动态绑定变量的用法
2015/06/16 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
js尾调用优化的实现
2019/05/23 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python简单实现AES加密和解密
2019/03/28 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python中property和setter装饰器用法
2019/12/19 Python
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
jQuery treeview树形结构应用
2021/03/24 jQuery
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
在校学生证明格式
2015/06/24 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
教师培训学习心得体会
2016/01/21 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
vue实现登陆页面开发实践
2022/05/30 Vue.js