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

作者:Teingi 时间:2023-11-24 03:09:49 

方法一:函数添加

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判断就不会成功,所以导入的时候不会执行判断内的代码。

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

来源:https://blog.csdn.net/weixin_40449300/article/details/79327201

标签:python,模块,路径,包导入
0
投稿

猜你喜欢

  • python DataFrame 取差集实例

    2021-06-06 01:22:24
  • Python实现制度转换(货币,温度,长度)

    2022-01-02 00:42:25
  • 详解Python中的分支和循环结构

    2023-07-19 11:56:21
  • 如何用Python画一些简单形状你知道吗

    2021-06-23 06:56:13
  • PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法

    2024-05-11 10:09:43
  • [译]Javascript风格要素(一)

    2008-02-28 12:58:00
  • python析构函数用法及注意事项

    2023-01-25 19:53:11
  • sql server2012附加数据库问题解决方法

    2024-01-19 19:34:28
  • python动态参数用法实例分析

    2021-03-02 06:27:51
  • python 返回一个列表中第二大的数方法

    2022-06-01 00:17:47
  • apache集成php5.6方法分享

    2023-09-06 09:03:54
  • 判断 iframe 是否加载完成的完美方法

    2009-09-24 13:35:00
  • Mac包管理器Homebrew的安装方法

    2023-02-16 06:20:19
  • Python对比校验神器deepdiff库使用详解

    2023-05-14 11:05:35
  • python的dataframe转换为多维矩阵的方法

    2021-08-19 08:59:09
  • 以用户为中心的WEB表单

    2010-08-03 12:11:00
  • Python unittest基本使用方法代码实例

    2023-06-28 06:42:56
  • Go语言测试库testify使用学习

    2024-04-26 17:31:57
  • 使用Python脚本将绝对url替换为相对url的教程

    2022-09-03 09:36:39
  • 学习ASP.NET八天入门:第七天

    2007-08-07 13:52:00
  • asp之家 网络编程 m.aspxhome.com