美文网首页
Python的包引用与环境变量

Python的包引用与环境变量

作者: 爱学习的代代 | 来源:发表于2019-03-21 23:28 被阅读0次

    1、文件/包的引用规则,要从工程的根目录开始查找,这样的使用相对路径的方式比较简单,并且容易理解。

    比如我们建立如下的目录结构:

    目录结构.png image.png

    此时我们要在c 文件中,引用a文件中的内容,那么在c文件中,就可以这么写:

    from dir_A import a
    print(a.A)
    

    同时我们运行python文件的时候,需要在工程的根目录进行运行。


    image.png
    2、为什么要指定Python的环境变量呢?

    因为 sys.path 是Python的一个搜索模块的路径集,当我们将Python的三方包的路径添加进去的话,那么我们就可以引用到所有的三方库了。同样也适用于我们自己建的包

    下面先那工程内的包,进行举个栗子:

    下图展示的是该工程的路径已经被添加到python的搜索路径了,所以基于工程的根目录运行不会出现任何错误。


    image.png

    错误实例:如果我们不在根目录执行c文件的话,会如何呢?


    命令行运行.png
    Pycharm IDE运行.png

    因为命令行执行的时候,python的搜索路径是在文件所在目录(即test_import/dir_B/dir_C目录)
    而直接运行编辑器的时候,python的搜索路径会包含工程的根目录与当前目录。
    所以在命令行运行,并且当进入到dir_C的时候,是从当前目录去查找了dir_A 当然是找不到的。所以就会报错。而编辑器的时候是正常的,它会从根目录再查找一次。

    Q3:引用虚拟环境中的三方包?

    有些时候我们会使用virtualenv 或者pipenv 等三方包,来创建虚拟环境,来管理我们工程所以用的python版本,但是我们在使用虚拟环境中的包的时候就需要在命令行指定python的环境变量(即python的搜索路径)。例如:

    虚拟环境安装的三方包️:


    image.png
    image.png

    我们需要指定

    • 命令行设置环境变量,立即生效。
      export PYTHONPATH=$PYTHONPATH:<你的要加入的路径>
    export PYTHONPATH=$PYTHONPATH:/root/.local/share/virtualenvs/create_a_vip_student-bxPVtGy6/lib/python3.7/site-packages: 
    

    除此之外,或许你为了实现一个功能还引入了本工程中的的其他包,那么就还需要将工程的根目录加入到环境变量中。
    最后就像这样:

    export PYTHONPATH=$PYTHONPATH:/root/.local/share/virtualenvs/create_a_vip_student-bxPVtGy6/lib/python3.7/site-packages:/var/lib/jenkins/workspace/create_a_vip_student/tools/dada:/var/lib/jenkins/workspace/create_a_vip_student
    
    

    相关文章

      网友评论

          本文标题:Python的包引用与环境变量

          本文链接:https://www.haomeiwen.com/subject/jimhvqtx.html