• python模块与包


    标准库的安装路径
    在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来:

    pprint.pprint(sys.path)
    ['',
    '/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg',
    '/Library/Python/2.7/site-packages/python_recsys-0.2-py2.7.egg',
    '/Users/zhanglixin/opensource/ipython',
    '/Library/Python/2.7/site-packages/pexpect-3.0-py2.7.egg',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
    '/Library/Python/2.7/site-packages']
    那么,我们放进这些路径里的模块或包,就可以不需指定路径,直接使用import导入了。特别的,/Library/Python/2.7/site-packages,我们常用的应该放在这里。

    常见问题:
    引入某一特定路径下的模块

    使用sys.path.append(yourmodulepath)
    将一个路径加入到python系统路径下,避免每次通过代码指定路径

    利用系统环境变量 export PYTHONPATH=$PYTHONPATH:yourmodulepath,
    直接将这个路径链接到类似/Library/Python/2.7/site-packages目录下
    好的建议

    经常使用if name == 'main',保证你写包既可以import又可以独立运行,用于test。
    多次import不会多次执行模块,只会执行一次。可以使用reload来强制运行模块,但不提倡。
    包(package)
    为了组织好模块,将多个模块分为一个包。包是python模块文件所在的目录,且该目录下必须存在__init__.py文件。常见的包结构如下:

    package_a
    ├── init.py
    ├── module_a1.py
    └── module_a2.py
    package_b
    ├── init.py
    ├── module_b1.py
    └── module_b2.py
    main.py
    如果main.py想要引用packagea中的模块modulea1,可以使用:
    from package_a import module_a1
    import package_a.module_a1
    如果package_a中的module_a1需要引用package_b,那么默认情况下,python是找不到package_b。我们可以使用sys.path.append('../'),可以在package_a中的__init__.py添加这句话,然后该包下得所有module都添加* import __init_即可。

  • 相关阅读:
    八月最后的一天
    Go语言系列一
    一个工具libre draw
    Linux启动eclipse报错找不到java环境解决方法
    P2P通讯初步实现
    C#中,当鼠标移动到控件上,动态显示提示内容 ToolTip
    在windows64位的系统上面操作操作excel程序出现异常
    office2007下载地址
    蜗牛算法
    利用vs自带工具分析程序性能
  • 原文地址:https://www.cnblogs.com/jonky/p/10155561.html
Copyright © 2020-2023  润新知