问题描述:首先我们需要了解如何去自定义一个包。我看到一篇不错的文章,链接如下:
[Python]自定义包及3种包导入方式_祥的专栏-CSDN博客_python 自定义包
但是,当我完成了博主所说的步骤时发现了如下错误:
?问题分析:其实这个还是没有找到包的原因。经过仔细分析我发现,其实是我将path的路径搞错了。我们只需要将我们所在的工程文件的路径加入path即可,而不需要精确到每个包的路径。即如下图所示:
?我们的包是在lib文件夹下的,路径是:"E:\Study_File\Python_Example\project\project_0\lib",然而我们只需要将path加入路径:"E:\Study_File\Python_Example\project\project_0\"即可,即整个工程的路径。事实证明,我们必须要精确到工程的路径,不能使用例如:"E:\Study_File\Python_Example\project"这样的路径,这样也会报错无法找到包。
问题解决:我在下面贴出我参考过的文章,供大家参考。
解决python3 导入自定义模块失败_qq1154479896的博客-CSDN博客_python导入模块失败
python 自定义包的导入失败_少游-CSDN博客_python 导入自定义包失败
上面的问题确实可以解决,但是还是可能有会有人import失败,因为上面对import有一定的要求!如下:
import package.mode #正确引用方法
如果我们使用其他引用方法的话,其实是会报错的!如下:
#方法一:
form package import mode #会报错
____________________________________________________
#方法二:
import package
package.mode.function #也会报错
————————————————————————————————————————————————————————
那么我们应该如何解决这样引用失败的问题呢,其实我们只需要在__init__.py文件中impot所有需要的mode(类似于c语言中的头文件的作用),如下: ?
#__init__.py
import package.mode_0
.
.
.
import package.mode_1
好了,至此,我们应该已经解决了大部分自定义库、包、模块的引用中肯出现的问题了。
|