python路径怎么查看_Python模块查找路径

在编写Python程序时候命名在IDE中运行正常可是到了服务器上就出现各种问题,经常发送的就是如下的错误:

ImportError:No module named ‘hello’

这个错误在学习初期都会遇到尤其是当引入第三方模块(从网上下载的或者是自己写的)的时候可能会发生。那是为什么呢?在Python中这些东西叫做模块,可是在系统中其实就是目录,既然你要使用这些模块也就是目录里面的内容,那么Python解释器肯定要能找到才行,其实就跟系统中的环境变量一样,编译安装程序的时候经常要手动设置环境变量,为什么呢?同样的道理,如果你不设置,那么你使用这些命令的时候,就要使用绝对路径或者进入到命令所在目录才可以,如果想要随时随地使用就必须设置环境变量,告诉系统去哪里找这些命令。知道原因之后我们看看Python是怎么找到这些模块的。

Python解释器如何找到模块

sys.path

这个函数输出的是一个列表,它就包含了搜索模块的路径,这个列表的第一个路径就是当前路径,所谓当前路径就是你运行Python程序的当前路径,比如你的程序放在/home/zhangsan/test.py,在运行这个程序的时候,这个程序的sys.path列表的第一个路径就是/home/zhangsan,其余的就是系统默认的路径,如下图:

1191499-20190926154650439-80272226.png

Python解释器就是通过这个类别来搜索模块的,如果你引入的模块不在这个列表里那么显然就找不到了,也就由了上面的错误。那如何添加呢?

既然sys.path输出是一个列表,那么我们就可以在列表中添加,看下图:

两个列表是不是不同呢?

1191499-20190926154809947-233623106.png

ContractedBlock.gif

ExpandedBlockStart.gif

#!/usr/bin/env python#-*- coding: utf-8 -*-

importsysprintsys.path#添加

sys.path.insert(1, "/work/apps/mymodules")print sys.path

View Code

这里为什么使用insert呢,其实使用append也可以,使用插入就是为了让它快速找到。这种是动态添加的,作用范围仅仅是当前py文件,如果很多py文件都引入了其他模块怎么办?一个一个修改太麻烦了。

PYTHONPATH

这个是环境变量,系统默认没有,需要自己设置。

编辑 vim ~/.bashrc

export PYTHONPATH=$PATHONPATH:/YOU_MODULE_DIRECTORY

然后执行 source~/.bashrc 使其生效即可。不过不推进这种方式,因为它会改部prefix何exec_prefix都是/usr/local

.pth文件

这种方式很简单便于管理,在需要大量添加外部路径的时候非常推荐,而且是永久生效。启动Python程序时候,解释器就会遍历目录,遇到pth就会读取这个文件中的内容并添加到sys.path中。

Python37\Lib\site-packages

1191499-20190926165053229-1543673521.png

其内容就是路径

1191499-20190926165107637-1496103912.png

文章转自:https://www.cnblogs.com/rexcheny/p/9504892.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值