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)。
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。
跨包调用(当前目录下有modulepack1包):
from modulepack1[.modulepack2] import module
如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。
import一个包名,就等于执行了这个包下的__init__文件。
示例:
在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
猜你喜欢
- 在用wordpress这个博客的时候,我很奇怪的发现,最近写的内容排在第一页,而最早写的成了最后页。这显然有悖逻辑,正常的情况应该是最早写的
- 持久化文件读写:f=open('info.txt','a+')f.seek(0)str1=f.read()i
- 判断是否xx开始使用startswith示例代码:String = "12345 上山打老虎"if str(String
- 简单的说,在vue中我们使用模板HTML语法组建页面的,使用render函数我们可以用js语言来构建DOM因为vue是虚拟DOM,所以在拿到
- 如何用SA-FileUp上传多个文件?表单处理: <%@&nbs
- 要将xian80地理坐标系转换成投影坐标系:xian1980 = """GEOGCS["GCS_Xi
- 1. 查看数据库的版本 select @@version 2. 查看数据库所在机器操作
- 找到对应页面,将Reopen last project on startup前面的勾去掉来源:https://blog.csdn.net/l
- 嗯,开场先胡扯几句不相关地感言。最近的工作让我有了很多实践的机会,同时也让我收获颇丰。在群里聊天的时候也提到过,所有的学习过程,最好是理论-
- 1. 需求:用户答题练习,当用户获取所有题目的同时,需要判断用户是否已经做过该题目,如果做过,需要render的时候添加一个“回顾”按钮。2
- 本文实例讲述了Python计算三维矢量幅度的方法。分享给大家供大家参考。具体如下:from numpy import *from math
- Matplotlib介绍Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy 
- 这篇文章主要介绍了python StringIO如何在内存中读写str,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 如果我们希望在网页的不同角落里放置不重复平铺的背景图,该怎么办呢?比如网页的背景要如图所示,并要求在不
- 如何在页面中对不同的数据进行相同的处理?selectId.asp' 列出所有客户的客户名称<html><
- 本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法。分享给大家供大家参考。具体如下:在网上下了一个dota的英雄攻略,
- 背景测试的出现是为了避免项目中出现重大事故测试是避免事故的最后一道屏障测试单元测试的覆盖率在一定程度上而言,决定了代码的质量单元测试通过测试
- 一、背景 PyCharm执行Python时,找不到自己安装的package,例如pandas、numpy、scipy、scikit等,在执行
- 问题描述项目中需要用到流程图,如果用js的echarts处理,不同层级建动态计算位置比较复杂,考虑用python来实现测试demo实现效果如
- 对于多层感知机而言,整个模型做的事情就是接收输入生成输出。但是并不是所有的多层神经网络都一样,所以为了实现复杂的神经网络就需要神经网络块,块