VSCODE python无法引入自定义的包

自学python时遇到一个很诡异的问题,工程结构如下:

VSCODE python无法引入自定义的包_第1张图片

每次一运行C5文件,就报错 ModuleNotFoundError: No module named 'study'

但是直接import c4的话就没问题

思索了一下,应该是包的引用路径存在问题,有两个方法可以解决

1.在代码中加入

import sys,os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # __file__获取执行文件相对路径,整行为取上一级的上一级目录

sys.path.append(BASE_DIR)

VSCODE python无法引入自定义的包_第2张图片

但是感觉这个方法治标不治本,每次要引用自己包的时候都加这么一段话挺烦的

 

2.在python的安装路径下的site-packages文件夹中增加指定路径

我的python是安装路径:G:\python工具\Lib\site-packages

我这个包所在的workspace在:E:\python\

所以在site-packages文件夹下创建一个记事本文件,名字取什么随便,后缀名改为.py

里面的路径写包所在的路径 E:\python\

最后这样就OK了,文件为pythonwork。但这么做的具体原理是什么我搞不太清楚,还望大神指点一下,因为我看python的教程里并没提到要配置这么个东西。

VSCODE python无法引入自定义的包_第3张图片

3.还有一种导致无法自定导入包的问题是因为

运行的入口文件,和所需要引入的文件,是在同一个包下,例如下图中去通过运行引入了testone的dem包就会运行失败

VSCODE python无法引入自定义的包_第4张图片

 因为dem和testone都是在newma文件夹下。必须得是像mainfile一样,才可以引入成功。

VSCODE python无法引入自定义的包_第5张图片

为这个问题纠结了好久希望可以帮助到有此困惑的同志。

你可能感兴趣的:(python)