首页 > 编程语言 >python 搜索路径及设置模块

python 搜索路径及设置模块

时间:2024-09-05 21:21:09浏览次数:13  
标签:lib python 路径 python2.7 sys usr 模块 lib64 hello

模块搜索路径

当import某个模块时,解释器首先搜索具有该名称的内置模块,
如果没有找到,将在变量 sys.path 给出的目录列表中搜索名为 模块名.py 的文件。
sys.path 包含了一下几个目录:

  • 输入脚本的当前目录;
  • PYTHONPATH环境变量;
  • python安装时的系统目录;
>>> import sys
>>> sys.path
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk',
  '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload',
   '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']

设置模块路径

在/root/ws目录下建一个hello.py文件

def test():
    print('hello')
    return

1、使用sys.path.append 临时动态添加模块的路径:

>>> sys.path.append('/root/ws')
>>> sys.path
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/root/ws']
>>>
>>> import hello
>>> hello.test()
hello

2、修改PYTHONPATH环境变量:

vim ~/.bashrc
 
#添加
export PYTHONPATH=$PYTHONPATH:/root/ws
#生效
source ~/.bashrc
 
#python代码中引入hello模块
$ python
Python 2.7.5 (default, Sep 15 2016, 22:37:39) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/root', '/root/ws', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']
>>> import hello
>>> hello.test()
hello

3、使用.pth文件:
在/usr/lib/python2.7/site-packages 下添加一个扩展名为 .pth 的配置文件(例如:test.pth),内容为要添加的路径:
/root/ws

标签:lib,python,路径,python2.7,sys,usr,模块,lib64,hello
From: https://blog.csdn.net/2401_86988060/article/details/141941067

相关文章

  • Python【3】乌七八糟
    目录if__name__=="__main__ 模块名————__name__装饰器参数的优化——可以接受任何函数需要添加自定义参数——再套一层 语法糖——好甜!类initselfif__name__=="__main__ 在Python中,`if__name__=="__main__":`这行代码是一个常见的习惯用法,它的......
  • 十种Python循环优化策略
    在Python编程中,循环是最常见的控制结构之一。尽管Python的循环语法简单明了,但在处理大量数据或进行复杂计算时,循环可能会成为性能瓶颈。本文将介绍10种加速Python循环的方法,帮助在保持代码可读性的同时显著提高性能。1.使用列表解析(ListComprehensions)列表解析是一种简洁且高效的......
  • 深入浅出:理解Python中的上下文管理器
    在Python编程中,上下文管理器是一个强大的工具,它允许我们更优雅地处理那些需要设置和清理的资源。本文将从概念入手,逐步深入到实现层面,帮助读者更好地理解和使用Python中的上下文管理器。什么是上下文管理器?上下文管理器是通过__enter__()和__exit__()方法来实现的类或......
  • Python 版本管理工具选择与 Pyenv 使用说明
    Python版本管理工具的主要作用是帮助开发者在同一台机器上管理多个Python版本和环境。这对于开发和部署不同项目非常有用,因为不同项目可能依赖不同的Python版本或者不同的包版本。具体来说,Python版本管理工具应有以下功能:(1)避免依赖冲突,不同的项目可能依赖不同版本的库,使用......
  • [python]线程与进程的区别及代码演示
    进程与线程多线程socket,tcp服务器实现,在最底下区别:关系区别:​线程依赖于进程,一个进程至少会有一个线程特点区别:进程间的数据是相互隔离的,线程间数据是可以共享的线程同时操作共享数据,可能引发安全问题,需要用到互斥锁进程的资源开销比线程大多进程程序比单......
  • 【机器学习】梯度提升和随机森林的概念、两者在python中的实例以及梯度提升和随机森林
    引言梯度提升(GradientBoosting)是一种强大的机器学习技术,它通过迭代地训练决策树来最小化损失函数,以提高模型的预测性能随机森林(RandomForest)是一种基于树的集成学习算法,它通过组合多个决策树来提高预测的准确性和稳定性文章目录引言一、梯度提升1.1基本原理1.1.1......
  • 20240905_182821 python 快速体验正则表达式 获取web的url
    导入正则模块元字符\d,匹配一个数字.,匹配任意符号+,修饰左边的东西让它可以匹配一次或无穷次search方法结果=re.search(规则,目标字符串)如果匹配成功可以有结果如果匹配不成功结果就是Nonesearch的结果如果匹配成功了就会得到一个对象想要拿到匹配的值可以让这个结......
  • Python 和 Java 区别是什么?哪个运行效率高?为什么?
    一、Python和Java的区别1.编程风格•Python是一种解释型动态编程语言,语法简洁、灵活,代码较为简洁直观,注重代码的可读性和简洁性,使用缩进来表示代码块。•Java是一种编译型静态编程语言,语法相对严谨,代码风格较为规范,需要明确声明变量类型,使用大括号来表示代码块。2.......
  • 《Python 面试热门问题五》
    一、引言Python作为一种广泛应用的高级编程语言,在各个领域都有着重要的地位。在面试中,Python相关的问题常常涉及到语言的基础知识、编程技巧、常用库的使用以及实际项目经验等方面。本文将围绕五个热门的Python面试问题进行深入探讨,帮助读者更好地准备Python面试,提升......
  • Python编程基础与人工智能实战
    大家好,今天给大家介绍Python编程基础与人工智能实战,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。Python编程基础与人工智能实战在人工智能(AI)的广阔领域中,Python作为一门高效、易学的编程语言,凭借其丰富的库和框......