基础.包(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、

 

posted @ 2020-04-29 10:48  pythonz  阅读(188)  评论(0编辑  收藏  举报