美文网首页
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