zoukankan      html  css  js  c++  java
  • python引入自己的包

    两种办法:

    一、在文件夹下添加一个名为 __init__.py 的文件,文件内什么都不需要写

    我的目录结构是这样的:

    pythonprojectmaindata	est.py
    pythonprojectmaincommonmysqlutil.py
    pythonprojectmaincommon__init__.py

    这样我在 test.py 中引入mysqlutil

    # test.py
    import os
    import sys
    
    # 我自己的在项目里的模块
    from main.common import mysqlutil
    
    def test1():
        mysqlutil.print()
        
    def main():
        test1()
    
    # 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行
    # 主要用于别人调用此代码时,不要进入该代码的入口
    if __name__ == "__main__":
        main()

    或者

    # test.py
    import os
    import sys
    
    # 我自己的在项目里的模块
    import main.common.mysqlutil
    
    def test1():
        main.common.mysqlutil.print()
        
    def mymain():
        test1()
    
    # 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行
    # 主要用于别人调用此代码时,不要进入该代码的入口
    if __name__ == "__main__":
        mymain()  # 名字不能和包的名字相同

     或者

    # test.py
    import os
    import sys
    
    # 我自己的在项目里的模块
    from main.common.mysqlutil import *
    
    def test1():
        print()  # 直接可以调用mysqlutil的方法, 这里也可以是类
        
    def main():
        test1()
    
    # 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行
    # 主要用于别人调用此代码时,不要进入该代码的入口
    if __name__ == "__main__":
        main()

    二、

    python报错ModelNotFoundError

    很可能是因为工作目录并不在sys.path中,系统无法默认的找到您的脚本文件,通过以下命令可以解决该问题:

    >>> import sys
    >>> sys.path.append('d:python_test')    #括号内为工作文件夹路径
    >>> import mymodel #引用的模块

    查看配置的路径: 在python命令行中或者.py文件里

    import sys
    sys.path

     通过如下命令添加路径:

    sys.path.append("C:UsersDELLDesktop	est")

    这样这个路径就被添加进来。

    在python的项目中,py文件里,我们可以用如下方法

    我的文件目录是这样的

    pythonprojectmaindata	est.py
    pythonprojectmaincommonmysqlutil.py
    # test.py
    import
    os import sys projectname = 'pythonproject' # 获取当前文件的目录 curPath = os.path.abspath(os.path.dirname(__file__)) # print(curPath) # 从后往前匹配项目 # path = curPath[0: curPath.rfind(projectname)] rootPath = curPath[0: curPath.rindex(projectname)] + projectname print(rootPath) #括号内为工作文件夹路径 #引用的模块 # sys.path.append(r'path ofilepythonprojectmaincommon') # import mysqlutil # sys.path.append(r'path ofilepythonproject') # import main.common.mysqlutil # from main.common import mysqlutil #sys.path.append(rootPath) sys.path.append(rootPath) # 我自己的在项目里的模块 from main.common import mysqlutil def test1(): print() def main(): test1() # 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行 # 主要用于别人调用此代码时,不要进入该代码的入口 if __name__ == "__main__": main()
  • 相关阅读:
    和菜鸟一起学android4.0.3源码之硬件gps简单移植
    Android学习笔记(三一):线程:Message和Runnable
    Android Runnable 运行在那个线程
    Android 的消息队列模型
    iOS开发UI篇—iOS开发中三种简单的动画设置
    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明
    ios开发UI篇—Kvc简单介绍
    iOS开发UI篇—从代码的逐步优化看MVC
    iOS开发UI篇—字典转模型
    iOS开发UI篇—九宫格坐标计算
  • 原文地址:https://www.cnblogs.com/zhangchao0515/p/12549646.html
Copyright © 2011-2022 走看看