python调用包_Python的包引用与环境变量

本文介绍了Python中包的引用规则,强调从工程根目录使用相对路径,并解释了为何需要设置环境变量以确保模块搜索路径正确。通过例子展示了不在根目录运行文件导致的错误,以及如何在命令行和虚拟环境中设置PYTHONPATH来引用虚拟环境和工程中的包。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值