django导入自定义包出现 no module name “XXXXX”问题笔记

因为最近刚刚学习django,所以想写一个在线子域名收集WEB应用来实战一下,谁知道导入oneforall的一直跑就说缺乏各种模块,我傻到手工一个个的添加模块最后还是各种模块找不到,oneforall本身是一个非常大很优秀的一个项目,而且本身提供了testpy文件,直接调用即可了,所以我还是觉得应该是我导入的方式存在问题。最后通过贴子:https://blog.csdn.net/weixin_36303807/article/details/114426730 得已解决问题!

最终在运行oneforall/init.py添加

import sys, os
print(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

成功运行!小笔记记一记!
补充知识:python 跨目录导入包

import os,sys
print(__file__)#获取的是相对路径
print(os.path.abspath(__file__))#获得的是绝对路径
print(os.path.dirname(os.path.abspath(__file__)))#获得的是Test_02的绝对路径
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#获得的是Test的绝对路径
Base_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(Base_DIR)#添加环境变量,因为append是从列表最后开始添加路径,可能前面路径有重复,最好用sys.path.insert(Base_DIR)从列表最前面开始添加
from Test_1 import change
change.clac(3,5)
#sys.path是获取环境变量
#dirname是获取路径,不最后的文件或文件夹名字
#filename获取最后文件或文件夹名字,与dirname相反

原文链接:https://blog.csdn.net/weixin_36303807/article/details/114426730

posted @ 2022-04-27 15:38  Creator、创造者  阅读(468)  评论(0)    收藏  举报