SiriBlog

siriyang的个人博客


  • 首页

  • 排行榜

  • 标签115

  • 分类37

  • 归档319

  • 关于

  • 搜索

关于Python导包的问题

发表于 2020-03-29 更新于 2021-10-29 分类于 计算机 , 技术 , Python 阅读次数: Valine:
本文字数: 715 阅读时长 ≈ 1 分钟

  最近在Pythonista上开发AppWishList的时候遇到导入自定义模块找不到的问题,经研究发现原来是自己的语法不规范导致的导包失败。

  Python导包会有一个搜索路径的问题,当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

  1. 当前目录
  2. 如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
  3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

  模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

  所以当要导入自己写的模块的时候应当将该模块的路径加入sys.path 变量中。最简单的办法就是在程序入口的最前面直接写:

1
2
3
import sys
sys.path.append('.')
...

  这样在程序启动时就将当前项目录加入搜索路径,之后导包代码只需要按照项目根目录来写就行了。

  当然这样会引发一个问题,就是当你模块里的各个子模块想要调用彼此的时候,直接使用模块名导入就会失败,虽然明明就在同一个目录下但就是找不到。其解决方法是在子模块导入当前目录其他子模块的时候模块名前加一个’.‘就行了。如:

1
2
3
from .AppModel import App
from .PriceModel import Price
...
参考资料
  • 小涂群主
  • Python 模块 | 菜鸟教程
-------- 本文结束 感谢阅读 --------
相关文章
  • 在AppWishList开发中遇到的一些问题
  • 中医药天池大数据竞赛--中药说明书实体识别挑战
  • NLP综合实践(三)
  • NLP综合实践(二)
  • NLP综合实践(一)
觉得文章写的不错的话,请我喝瓶怡宝吧!😀
SiriYang 微信支付

微信支付

SiriYang 支付宝

支付宝

  • 本文标题: 关于Python导包的问题
  • 本文作者: SiriYang
  • 创建时间: 2020年03月29日 - 11时03分
  • 修改时间: 2021年10月29日 - 18时10分
  • 本文链接: https://blog.siriyang.cn/posts/20200329112132id.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习笔记 Python 语法
Pythonista中文文档:dialogs
Pythonista中文文档:notification
SiriYang

SiriYang

努力搬砖攒钱买镜头的摄影迷
319 日志
33 分类
88 标签
RSS
GitHub E-Mail
Creative Commons
Links
  • 友情链接
  • 作品商铺

蜀ICP备19008337号 © 2019 – 2025 SiriYang | 1.7m | 25:41
0%