基础.包(package)
ZC:老是报找不到xx包,明明本地文件中有这个包,代码就是找不到它,__init__.py文件也是有的... 暂时的处理方式:手动添加路径:sys.path.insert(0, r"??\??"); 或 sys.path.append(r"??\??");
1、举例子:
1.1、运行的主py文件:(E:\Github_Download\face_recognition_with_facenet\zzz_test.py)
""" from __future__ import absolute_import from __future__ import division from __future__ import print_function """ import sys #print("type(sys.path):", type(sys.path)); #sys.path.insert(0, "E:\\Github_Download\\face_recognition_with_facenet\\alfred\\") for path1 in sys.path: print(path1); #sys.path.remove("D:\\Python\\Python37.4_x64_TF1.14.0CPU\\lib\\site-packages") from alfred import zzz #sys.path.append("D:\\Python\\Python37.4_x64_TF1.14.0CPU\\lib\\site-packages") print(sys.path); zzz.zz(); #
1.2、本地模块py文件:(E:\Github_Download\face_recognition_with_facenet\alfred\zzz.py)
import tensorflow as tf def zz(): print("zz"); print("tf.__version__:", tf.__version__)
1.3、打印出来的 环境变量信息为:
E:\Github_Download\face_recognition_with_facenet D:\Python\Python37.4_x64_TF1.14.0CPU\python37.zip D:\Python\Python37.4_x64_TF1.14.0CPU\DLLs D:\Python\Python37.4_x64_TF1.14.0CPU\lib D:\Python\Python37.4_x64_TF1.14.0CPU D:\Python\Python37.4_x64_TF1.14.0CPU\lib\site-packages
ZC:第1条 就是源码所在的目录,个人认为 应该能找到本地的 模块啊,为什么看不见呢??然后一直绕在 环境变量 的问题上,就像上面注释掉的源码那样:
sys.path.insert(0, "E:\\Github_Download\\face_recognition_with_facenet\\alfred\\") 或者
sys.path.insert(0, "E:\\Github_Download\\face_recognition_with_facenet\\")
把该放入的目录都放进去了还是不行... zzz_test.py 找到的 alfred 依旧是 “D:\Python\Python37.4_x64_TF1.14.0CPU\lib\site-packages”里面的alfred,始终不去用 本地文件夹alfred 中的文件...
ZC:后来 发现“D:\Python\Python37.4_x64_TF1.14.0CPU\lib\site-packages”里面的包 都带有 __init__.py 于是就查询了一下 __init__.py是干嘛用的(python中含__init__.py 的文件才会被认作是一个包,为什么呢,这个文件有什么作用呢_百度知道.html [https://zhidao.baidu.com/question/1691670714351383108.html])
python中__init__.py文件的作用实例: python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module。__init__.py里面还7a686964616fe58685e5aeb931333431356133是可以有内容的,我们在导入一个包时,实际上导入了它的__init__.py文件。我们可以再__init__.py文件中再导入其他的包,或者模块。
[python] import readers import writers import commands import users import meta import auth import admin
这样,当我们导入这个包的时候,__init__.py文件自动运行。帮我们导入了这么多个模块,我们就不需要将所有的import语句写在一个文件里了,也可以减少代码量。不需要一个个去导入module了。
于是,我试着在 “E:\Github_Download\face_recognition_with_facenet\alfred\”中 新建了一个 "__init__.py"(空文件),zzz_test.py 居然能找到 本地文件夹alfred中的py文件了...
ZC:关键还是 "__init__.py" ! ! ! 具体里面的 语法什么的以后再说吧
2、
3、
4、
5、