【python编程】python无法import模块的一种原因分析

python系统路径添加错误

最近写代码的时候遇到一个问题,就是想添加工程下fu_convert文件夹下自己编写的convert_fw.py模块,但是出现报错,是个比较低级的问题,但还是简单记录一下

报错原因

无法找到模块convert_fw;

相关代码如下:

sys.path.append(parent)
sys.path.append(parent+"/FU")
sys.path.append(parent+"/fu_convert")
import convert_fw

原因分析

猜测sys.path没有添加到正确的路径,导致python脚本在import convert_fw模块时候,无法在sys.path中找到convert_fw所在的路径;于是如下图,打印出了一下当前路径parent,是C:\Users\Rio.lin\Desktop\Fu-tool\GUI;

而自己添加sys.path的时候是直接在parent下添加,即sys.path.append(parent+“/fu_convert”);这样是错误的,因为fu_convert文件夹并不在C:\Users\Rio.lin\Desktop\Fu-tool\GUI,而是在它的父目录C:\Users\Rio.lin\Desktop\Fu-tool下;要使用父目录我们可以用sys.path.append(str(Path(file).resolve().parents[1]

所以自己添加sys.path时候应该在parent的上一级目录下再去添加fu_convert文件夹,这样我们的python脚本才能imort到fu_convert文件夹下的convert_fw模块

在这里插入图片描hi述

解决办法

利用

sys.path.append(str(Path(__file__).resolve().parents[1].joinpath('fu_convert')))

替换掉错误的添加语句

sys.path.append(parent+"/fu_convert")

将搜索路径添加进去,这样即可正常运行
在这里插入图片描述

补充

另外,其实在windows环境的编程中添加路径分隔符应该是“\\”,而不是“/”,所有下述的写法也是错的

sys.path.append(parent+"/fu_convert")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,模块编程是将代码分割成多个独立的模块,每个模块负责完成特定的任务或提供特定的功能。这样可以提高代码的可维护性、复用性和可读性。以下是一些在 Python 中进行模块编程的常用方法: 1. 使用模块文件:将相关的函数、类或变量放在一个独立的模块文件中,可以使用 `import` 语句导入该模块,并在其他地方使用该模块中定义的内容。例如,可以创建一个名为 `utils.py` 的模块文件,并在其他文件中使用 `import utils` 来使用该模块中的函数或类。 2. 分割代码成多个文件:如果一个模块文件过大或包含了过多的功能,可以将其中的代码分割成多个文件。可以创建一个包(package)来管理这些文件,包是一个包含了多个模块的目录。每个模块独立负责一个特定的功能,可以通过 `import` 语句来导入需要使用的模块。 3. 使用类和对象:类是一种将数据和相关操作封装在一起的代码结构,可以通过实例化对象来使用类中定义的方法和属性。通过使用类和对象,可以将代码按照功能和职责进行划分,并实现更高层次的模块化。 4. 使用函数:函数是一段可重复使用的代码块,可以接受参数并返回结果。通过将功能性代码封装在函数中,可以使代码更加模块化和可复用。 5. 使用第三方库和模块Python 社区提供了丰富的第三方库和模块,可以直接使用这些库来完成特定的任务,而无需自己重新实现。这样可以提高开发效率,并且使用这些库也是一种模块编程的方式。 当进行模块编程时,要注意以下几点: - 模块之间要保持高内聚低耦合的原则,即一个模块应该只关注自己的功能,不涉及其他模块的内部实现。 - 使用适当的命名规范来命名模块、类、函数和变量,以提高代码的可读性和可维护性。 - 将公共的代码抽象成函数或类,以提高代码的复用性和可维护性。 - 编写适当的文档和注释,以提供清晰的说明和使用说明。 总之,模块编程是一种良好的编程实践,可以帮助组织和管理大型项目,并提高代码的可维护性和复用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值