python模块导入总结

系统 554 0

python模块导入总结

 

模块导入方式

定义test.py模块

            
              def
            
            
               print_func():
    
            
            
              print
            
            (
            
              "
            
            
              hello
            
            
              "
            
            )
          

import 语句

导入模块语法

            import module1[, module2[,... moduleN]]
          

引用print_func()函数

            模块名.函数名
          
            
              #
            
            
              !/usr/bin/python
            
            
              
#
            
            
               -*- coding: UTF-8 -*-
            
            
              #
            
            
               导入模块
            
            
              import
            
            
               test
 

            
            
              #
            
            
               现在可以调用模块里包含的函数了
            
            
test.print_func()
          

 

from…import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

            
              from
            
             modname 
            
              import
            
             name1[, name2[, ... nameN]]
          

例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:

            
              from
            
             fib 
            
              import
            
             fibonacci
          

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。

 

from…import* 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

            
              from
            
             modname 
            
              import
            
             *
          

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

例如我们想一次性引入 math 模块中所有的东西,语句如下:

            
              from
            
             math 
            
              import
            
             *
          

 

 

python绝对路径和相对路径

转自https://blog.csdn.net/databatman/article/details/49453953

            
              下面的路径介绍针对windows,其他平台的暂时不是很了解。

在编写的py文件中打开文件的时候经常见到下面其中路径的表达方式:

open(
            
            
              '
            
            
              aaa.txt
            
            
              '
            
            
              )  
open(
            
            
              '
            
            
              /data/bbb.txt
            
            
              '
            
            
              )  
open(
            
            
              '
            
            
              D:\\user\\ccc.txt
            
            
              '
            
            
              )  
这三种表达式里面,前两个都是相对路径,第三个则是绝对路径。绝对路径比较好理解,就是最完整的路径,相对路径的相对则是不完整路径,这个相对指的就是相对于当前文件夹路径,其实就是你编写的这个py文件所放的文件夹路径!也就是说你写的相对路径必须是当前文件夹A里的文件a或者A里的文件夹B里的文件才可以open。

假设当前的py文件夹所处的位置是:D:\user\public

那么三行代码打开的文件所属的路径分别是:

D:\user\public\aaa.txt

D:\user\public\data\bbb.txt

D:\user\private\ccc.txt

很好理解就是当要打开py文件所处的文件时只要使用相对路径就行了,而要使用其他文件夹的则需使用绝对路径。

注:我们常用’
            
            /‘来表示相对路径,’\‘来表示绝对路径,上面的路径里\\是转义的意思。此外,网页网址和linux、unix系统下一般都用’/
            
              ‘。

当然我们也可以获得当前文件夹的绝对路径,如下:


            
            
              import
            
            
               os  
path1
            
            =os.path.abspath(
            
              '
            
            
              .
            
            
              '
            
            )   
            
              #
            
            
              表示当前所处的文件夹的绝对路径  
            
            
path2=os.path.abspath(
            
              '
            
            
              ..
            
            
              '
            
            )  
            
              #
            
            
              表示当前所处的文件夹上一级文件夹的绝对路径  
            
            
所以我们常设置一个path1的全局变量来表示当前的绝对路径,再加上相对路径来打开需要打开的文件,这么做是为了在不同的平台上不冲突,因为不同平台在相对路径上的表示上存在区别。
          

 

PYTHONPATH 变量

作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。

在 Windows 系统,典型的 PYTHONPATH 如下:

          set PYTHONPATH=c:\python27\lib;

        

在 UNIX 系统,典型的 PYTHONPATH 如下:

          set PYTHONPATH=/usr/local/lib/python
        

 

搜索路径

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

  • 1、当前目录
  • 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
  • 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

 

python中设置PYTHONPATH 变量

PYTHONPATH是Python中一个重要的环境变量,用于在导入模块的时候搜索路径.可以通过如下方式访问:

            
              import
            
            
               sys


            
            
              print
            
            (sys.path)
          
            [
            
              '
            
            
              C:\\Pycham
            
            
              '
            
            , 
            
              '
            
            
              C:\\Pycham
            
            
              '
            
            , 
            
              '
            
            
              C:\\Users\\Administrator\\my_site
            
            
              '
            
            , 
            
              '
            
            
              C:\\Users\\Administrator\\mysite
            
            
              '
            
            , 
            
              '
            
            
              C:\\Users\\Administrator\\test_login
            
            
              '
            
            , 
            
              '
            
            
              C:\\Pycham\\anaconda\\Scripts\\python37.zip
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\DLLs
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\lib
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3
            
            
              '
            
            , 
            
              '
            
            
              C:\\Pycham\\anaconda
            
            
              '
            
            , 
            
              '
            
            
              C:\\Pycham\\anaconda\\lib\\site-packages
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\lib\\site-packages
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib
            
            
              '
            
            , 
            
              '
            
            
              C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin
            
            
              '
            
            ]
          

路径列表的第一个元素为空字符串,代表的是相对路径下的当前目录.

由于在导入模块的时候,解释器会按照列表的顺序搜索,直到找到第一个模块,所以优先导入的模块为同一目录下的模块.

导入模块时搜索路径的顺序也可以改变.这里分两种情况:

1,通过sys.path.append(),sys.path.insert()等方法来改变,这种方法当重新启动解释器的时候,原来的设置会 失效 .

            
              import
            
            
               sys
  sys.path.append(
            
            
              '
            
            
              /home/test/
            
            
              '
            
            )
          

2,改变PYTHONPATH,这种设置方法 永久有效 :

            export PYTHONPATH=$PYTHONPATH:/home/test
          

在这种情况下,可以通过在sys.path列表显示的路径中路径件来实现:文档

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论