zoukankan      html  css  js  c++  java
  • python模块管理框架

     

     

    python下包管理框架记录

      

      测试环境:ubuntu16.04下的~/目录下。

     一、我们的测试目录结构如下:

      当前目录在:~/chap7,使用tree命令看到当前目录下的文件及文件夹结构如下:

      

      其中三个__init__.py为空文件,

      simpledatasetloader.py里定义一个类:

      

      simplepreprocessor.py里定义另一个类:

      

      在根文件knn.py中导入格式如下:

      

      在knn.py这样配置,我们希望from包直接导入包中模块的类名。

     二、模块与包

      模块:实质上就是一个以.py结尾的文件,可以被其他py文件调用。

      包:即包所在的文件夹里包含一个__init__.py的文件,即在这里的pyimagesearch、datasets、preprocessing分别为三个包。

     三、运行测试

      运行:python knn.py显示结果如下:

      

      原因是,我们没有配置__init__.py文件。

      我们在python中,from sklearn.preprocessing import LabelEncoder,则可以直接从目录包中导入类名,

    从sklearn的git目录下的neighbors的__init__.py看配置如下:

      

      因此,我们将preprocessing文件夹下的__init__.py添加如下:

      

      将datasets文件夹下的__init__.py添加如下:

      

      保存后,此时,再次执行python knn.py即可正确显示如下:

      

      因此,在以包为管理方式,来配置不同的包管理时,可参考python中某个包的配置方式来配置。

      如果在datasets下还有其它模块需要导入,可按此方式即可。

  • 相关阅读:
    c# 调用DeepAI
    c#
    c# Polygon 画多边形,
    WPF BitmapSource /BitmapImage 获取像素点颜色
    前端面试题汇总
    element 动态合并表格
    JS的乘、除、加、减法结果会有误差,在两个浮点数相乘的时候会比较明显
    shell中针对数字、filename字符串等的判断参数的总结
    Android TV : 电视输入框架(TIF)剖析
    ubuntu更新系统函数手册
  • 原文地址:https://www.cnblogs.com/paladinzxl/p/9506357.html
Copyright © 2011-2022 走看看