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