python在pycharm中找得到路径但在命令行中找不到module路径的问题

版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820

 

一、简述

由于某些原因,在使用 import 时,Python 找不到相应的模块。这时,解释器就会发牢骚 - ImportError

那么,Python 如何知道在哪里搜索模块的路径呢?

 

二、模块搜索路径

当导入名为 hello 的模块时,解释器首先搜索具有该名称的内置模块。如果没有找到,将在变量 sys.path 给出的目录列表中搜索名为 hello.py 的文件。

sys.path 从这些位置初始化:

  • 包含输入脚本的目录(或当前目录,当没有指定文件时)
  • PYTHONPATH(目录名列表,与 shell 变量 PATH 语法相同)
  • 与安装相关的默认值

注意: '' 表示当前目录(当前脚本所在的路径)

例如,在 /home/wang/workspace 中创建一个名为 hello.py 的模块,内容如下:

然后,试图加载该模块:

很遗憾,由于 sys.path 中没有包含 /home/wang/workspace 这个路径,所以找不到 hello 模块,从而引发 ImportError

 

三、添加模块搜索路径

为了解决上述问题,需要添加模块搜索路径,可以使用以下几种方式:

  • 动态增加路径 
    临时生效,对于不经常使用的模块,这通常是最好的方式,因为不必用所有次要模块的路径来污染 PYTHONPATH

  • 修改 PYTHONPATH 变量 
    永久生效,对于在许多程序中都使用的模块,可以采用这种方式。这将改变所有 Python 应用的搜索路径,因为启动 Python 时,它会读取这个变量,甚至不同版本的 Python 都会受影响。

  • 增加 .pth 文件 
    永久生效,这是最简单的、也是推荐的方式。Python 在遍历已知的库文件目录过程中,如果遇到 .pth 文件,便会将其中的路径加入到 sys.path 中,于是 .pth 中所指定的路径就可以被 Python 运行环境找到了。

1、动态增加路径

通过 sys 模块的 append() 方法在 Python 环境中增加搜索路径:

现在,查看搜索路径:

可以看到,路径被成功添加进去了,再次执行导入可以正常使用。

2、修改 PYTHONPATH 变量

打开并编辑 bashrc

将以下内容附加到文件末尾:

不要忘记重新加载 shell,方法是退出并重新启动,或者在命令行重新加载配置文件:

3、增加 .pth 文件

在 /usr/local/lib/python3.5/site-packages 下添加一个扩展名为 .pth 的配置文件(例如:extras.pth),内容为要添加的路径:

 

四、在python的命令行里面import mrcnn就行,但是运行脚本显示没有mrcnn模块。

如下图:

这是因为运行路径错误,改成当前文件下运行即可:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值