【python初级】sys.path解决模块导入的问题

您所在的位置:网站首页 python无法导入自己写的模块文件怎么办啊 【python初级】sys.path解决模块导入的问题

【python初级】sys.path解决模块导入的问题

2024-01-06 07:37| 来源: 网络整理| 查看: 265

【python初级】sys.path解决模块导入的问题 1.背景2.解决办法3 sample示例

1.背景

python3在导入模块的时候,可能会遇到导入模块失败的情况。 为了更好的项目迁移,我喜欢使用相对路径,但相对路径可能会导致模块导入失败。

2.解决办法

本博客提供一种解决办法,涉及以下的模块方法和变量:

方法或变量说明sys.pathpython的搜索模块的路径集列表变量_file_表示文件本身,输出的是一个文件当前位置的绝对路径os.path.dirname(_file_)运行脚本所在文件夹的路径

说明1 python首先在当前目录中查找引用脚本文件,如果没有找到则从sys.path列表中查找,如果仍然没有找到,就会抛出异常,即提示模块不存在。 所以,如果我们想在项目中解决这种问题,我推荐直接将被引用脚本所在文件夹路径添加到sys.path列表中。即使用sys.path.append(“xxxx”)

(注意,你也可以使用from xxx1 import xxx2的形式,这种在一般项目应该够用,如果在项目结构比较深,内层引用外层脚本等情况,可能你需要进一步调试。)

说明2 当被import的脚本存在的情况下: import模块时,会优先导入相应的.pyc文件(.py或者.pyw伪编译后生成的字节码),如果相应的.pyc文件不存在,则在导入.py文件后生成.pyc文件。

3 sample示例

如下将DEVICE_INFO.py脚本中引用了同级目录下的MvImport_2020-04-24文件下的脚本,如下图:在这里插入图片描述 在这里插入图片描述 建议在DEVICE_INFO.py脚本中采用如下的方式引用脚本:

#本脚本名称:DEVICE_INFO.py ### 当前脚本所在文件夹的路径,添加到搜索模块的路径集列表; import os import sys abs_file = __file__ prefix = os.path.dirname(abs_file) sys.path.append(os.path.join(prefix,"MvImport_2020-04-24")) #导入模块 from MvCameraControl_class import *


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3