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实现简单的TCP代理服务器
Oct 08 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
Python中static相关知识小结
Jan 02 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Python创建或生成列表的操作方法
Jun 19 Python
python跳出双层for循环的解决方法
Jun 24 Python
pycharm重命名文件的方法步骤
Jul 29 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
pytorch中的weight-initilzation用法
Jun 24 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
原生js实现日期联动
2015/01/12 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
深入Python函数编程的一些特性
2015/04/13 Python
python中xrange用法分析
2015/04/15 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python实现的特征提取操作示例
2018/12/03 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
python的dict判断key是否存在的方法
2020/12/09 Python
python 写一个水果忍者游戏
2021/01/13 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
ktv收银员岗位职责
2013/12/16 职场文书
面试自我评价范文
2014/09/17 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
2014年个人售房协议书
2014/10/30 职场文书