python 路径问题

关于python中引入别的py文件(引包)的问题

1、pip安装的包

pip安装的包一般存放在python 目录下,lib – site-packages 下。但是如果我们引入的时候会怎么找到这里呢

开始我以为我在环境变量里设置过这个路径,但是我查看了一下确实没有,而在python中查看sys.path会显示以下信息,相信大家都是大同小异,可以看到 lib/site-packages确实清除的在目录下

在这里插入图片描述
既然它在sys下输出的自然要查看sys的设置文件,这里在 lib 文件夹下有个 sysconfig.py文件,可以清除的看到,这些路径都是在里面设置好了的
在这里插入图片描述
然后通过os查看当前的路径再进行拼接。这也就是为什么pip安装的包可以找到了。

既然如此,那么,我们如果像引入自己的包就仿着这个就行,简单点的 ,如果需要经常使用,简单点直接丢到site-package文件下,建立一个文件夹,放入我们的代码是不是就可以了?

让我们 try 1 try:

1、在 lib\site-package 下创建一个文件夹 aaatest (这里是我随便取的,方便在前面一眼就能看到)
2、在aaatest文件中 创建一个 testtest.py 文件,里面就写了个 a=1
3、同时创建一个 init 文件,把testtest中的所有内容import进去
在这里插入图片描述

然后打开一个终端(就是cmd),然后运行python验证
在这里插入图片描述
果然可以吧~

2、自己写的代码

然后python还提供了一个增加路径的方法,那么,如果我的代码放在e盘,我在d盘的代码想要调用,只需要把e盘代码的路径增加到 sys.path中就行了。

代码

import sys
sys.path.append('e://test')

在这里插入图片描述
额,,,,,斜杠画反了,大家要注意。
然后在test文件下的py文件就可以调用了。。。

3、问题

然而。。。这里有个问题,由于我写代码的时候喜欢使用相对路径,这样我把目录复制或移动到别的目录时依然可以直接使用,而不用修改绝对路径。

所以上面的执行方法可能会遇到一个问题

举个栗子:
	在  e:\\test  文件下 有    
	 		a.py 文件   b.txt 文件
	a文件执行的时候会读取b.txt文件的内容然后初始化一些东西。
	而我在 d:\\b.py  文件中,import a 时,则会报错找不到 b.txt 文件。

??? 我不是把路径加入到sys中了吗?

这里我想了个方法,在 a.py 中读入b.txt 文件时,使用os查一下当前的路径,然后和b.txt拼接起来,它看起来像这样。

import os
with open (os.path.abspath('./')+'\b.txt','r') as f:
	txt = f.read() 

当我满心欢喜的执行的时候。。。发现居然不行!

这时如果在 e:\a.py 文件中输出路径

print(os.path.abspath('./')+'\b.txt')

则会输出

d:\\b.txt

哈????好吧,先老老实实写绝对路径吧,有知道怎么解决的小伙伴请留言,多谢~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值