python的相对路径导入问题
2014-05-20 18:37 youxin 阅读(10250) 评论(0) 编辑 收藏 举报用python做项目,如果项目大了,或者想更好的管理程序,总是要使用包。包解决了命名冲突的问题。
今天在使用python的相对路径导入的时候,遇到了不少的问题。
包导入情形:
src/
__init__.py
main.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py
如果要在expander.py中引用functions.py中的内容,或许这样表示
from ..utilities import functions.py
1.错误一:ValueError:Attemptedrelative import beyond toplevel package
这个问题是因为到达了包的最顶层,而最顶层不是一个包。
解决方法:在main.py同级添加一个目录mod,包含components和utilities,并在mod中添加一个__init__.py,即可解决
参见:http://stackoverflow.com/questions/4175534/relative-imports-in-python
2.错误二:ValueError: Attempted relative import in non-package
使用相对路径进行导入的文件,不能再当作主文件执行。原因如下:
http://blog.csdn.net/chinaren0001/article/details/7338041
3.错误三:no module named ***
在指定路径下没有找到该模块。
另外:在main.py执行的时候,没有指定路径的文件默认与main.py是同一路径。
转自:http://hi.baidu.com/fleago/item/06b5c95765b17e12aaf6d79b
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2013-05-20 zend framework和smarty的区别
2013-05-20 什么是分层架构模式及常见的分层架构模式
2013-05-20 三层架构理解
2012-05-20 回溯法解八后问题
2012-05-20 回溯法简介
2012-05-20 c++ find_first_of
2012-05-20 masmplus增加调试工具