- gitlab安装及邮箱配置和常用使用
Gen邓艮艮
gitlablinux环境软件gitlab
1.安装GitLab注意关闭网络防火墙和网络安全组#1.下载镜像wgethttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm#2.安装依赖yuminstall-ypolicycoreutilsopenssh-serveropenssh-clientspostfixpo
- Linux安装Python3
培根芝士
PythonLinuxpythonlinux
1.下载python3编译的依赖包yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel2.安装openssl1.1.xyu
- linux下编译安装python3.10亲测可行!
致命扼腕
环境安装服务器使用linuxpython运维
方法简单两部步就可以啦apt-getupdate&&apt-getupgrade-yapt-getinstall-y--no-install-recommendsgccg++makepython3python3-devpython3-pippython3-venvpython3-wheelespeak-nglibsndfile1-dev测试命令行输入python3即可看到安装成功安装python包
- 十五、CentOS 7 下 安装python3.10 使用最新openssl
默金……
centoslinux运维
要在CentOS7上安装Python3.10并使用最新的OpenSSL,可以按照以下步骤进行操作:更新系统软件包:使用yum命令更新系统软件包到最新版本:sudoyumupdate安装编译工具和依赖项:安装构建Python和OpenSSL所需的编译工具和依赖项:sudoyumgroupinstall"DevelopmentTools"sudoyuminstallzlib-develbzip2-de
- linux 安装python3.7.10
多财多亿,凭亿近人
python随手笔记Python安装编译依赖Linux
apt-getupdateapt-getupgradeaptinstallbuild-essential-yaptinstalllibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-dev-yaptinstallzlib1g-devaptinstallwgetaptinstallopensslaptinstallc
- Linux下安装python3.10.12环境
爱思考的李MAX
linux运维服务器python
安装python3编程环境检查是否安装python3python3-V安装python3依赖sudoyum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-devel下载pyt
- 第28节课:前端项目实战—从需求分析到开发流程的全方位指南
学问小小谢
HTML学习笔记前端需求分析安全web安全网络性能优化html5
目录项目需求分析与设计项目背景与目标项目背景项目目标需求收集与分析用户需求业务需求项目设计技术栈选择系统架构设计数据库设计项目开发流程环境搭建安装Node.js和npm初始化项目编码实践组件化开发状态管理测试与调试单元测试集成测试部署与维护部署维护结语在前端开发领域,将理论知识应用于实际项目是提升技能的关键。本节课将通过一个完整的前端项目实战案例,详细介绍项目需求分析与设计,以及项目开发流程,帮助
- 编译安装 Python 3.10.15:你必须掌握的 CentOS 实战指南20241031
Narutolxy
Python笔记技术干货分享pythoncentos开发语言
编译安装Python3.10.15:你必须掌握的CentOS实战指南**在CentOS系统上编译安装Python是一项技术活。**轻微的疏忽可能就让你陷入依赖困境,或甚至让Python与系统组件发生冲突。今天,让我们从实践角度出发,掌握一套高效、安全的安装流程!一、为什么要手动编译安装Python?包管理器的Python版本可能无法满足你的开发需求,尤其是在追求新特性或想要启用特定优化时。从源码编
- linux 安装python 3.10
处女座_三月
pythonlinux运维服务器
1下载对应的安装包下载地址:https://download.csdn.net/download/weixin_43401380/885196692上传服务器1步骤1:解压文件tar-xzfPython-3.10.13.tgz2步骤2:创建安装目录mkdirlocal3开始安装1安装gcc:你需要安装gcc,这是GNU编译器集合的一部分,用于编译C程序。执行以下命令来安装gcc:sudoaptup
- 实验八 JSP访问数据库
无尽罚坐的人生
#JavaWebjava数据库android
实验八JSP访问数据库目的:1、熟悉JDBC的数据库访问模式。2、掌握使用MySQL数据库的使用实验要求:1、通过JDBC访问mysql数据,实现增删改查功能的实现2、要求提交实验报告,将代码和实验结果页面截图放入报告中实验过程:一、安装Mysql,设置好数据库的账户和密码不需要创建一个账户,选择skipsing-up即可。对数据库服务器在访问有端口,账户名称和密码进行设置。手工选择中文字符集23
- 基于Python的图书馆借阅记录管理系统设计与实现
IT实战课堂@白老师
Python项目python开发语言毕设指导推荐毕设选题推荐智能家居爬虫
基于Python的图书馆借阅记录管理系统设计与实现|计算机毕业设计|毕设选题|选题推荐|答辩指导|课程设计|毕设答疑l论文降重该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!技术路线:软件开发环境及开发工具:开发语言:python使用框架:Django前端技术:JavaScript、VUE.js(2.
- K-Lite Codec Pack 是一个广泛使用的音频和视频编解码器(Codec)集合包
byco
音视频视频编解码
概述K-LiteCodecPack是一个广泛使用的音频和视频编解码器(Codec)集合包,它允许Windows用户轻松播放各种多媒体格式文件。自推出以来,K-LiteCodecPack因其广泛的兼容性和用户友好的安装流程而备受欢迎,无论是普通用户还是专业人士都能够从中受益。【原文地址获取下载地址】版本和功能K-LiteCodecPack提供多个版本,以满足不同用户的需求:Basic版:适合需要播放
- Ubuntu16.04环境下安装cuda10+pytorch1.2
小楼昨夜,东风
pytorch深度学习神经网络
1、背景环境:Ubuntu16.04&titanx作为新一代的人工智能训练平台的PYTORCH,有其独特的优势,为此,完整的安装这一平台,是开展所有工作的首要条件,一开始,笔者认为应该轻松的完成,但是发现实际上要从零完成这一工作,尤其是在NVIDIATITANX下,是需要3~4天的摸索的,为了便于后续的工作,也为了后面使用的童鞋,写下这篇文章,闲话少说,先上最终完成shell输出。xxx@xxxU
- linux 配置Java环境变量
找个栗子
linuxjavapython
要在Linux上配置Java环境变量,可以按照以下步骤进行操作:首先,打开终端。确认是否已安装Java。在终端中运行以下命令:java-version如果已安装Java,则会显示Java的版本信息。如果没有安装Java,请先安装Java。找到Java的安装路径。在终端中运行以下命令:sudoupdate-alternatives--configjava这会显示Java的安装路径。记下此路径,后续会
- 文本预处理时Resource punkt/stopwords/averaged_perceptron_tagger_eng/wordnet not found报错解决方式--亲测有效
無量空所
NLPnlp
报错如上图所示,此时在安装nltk包的情况下运行下方代码即可(缺哪个文件填哪个文件名)importnltkimportos#设置下载目录nltk.data.path.append('此处填写上述报错中给出的好几个红色目录中的一个')#下载stopwordsnltk.download('缺失文件名,这里填stopwords')
- 安装OpenCV时遇到pip install指令无效的问题
Chan的菜鸟成长之路
opencvpip人工智能计算机视觉图像处理
解决方法:将pipinstallopencv-python改为pip3installopencv-python,即可成功安装。pip和pip3的区别概念方面pip是Python的包管理工具,用于安装和管理Python软件包。它默认是关联到Python2.x版本(如果系统中同时安装了Python2和Python3)。pip3专门用于管理Python3.x版本的软件包。在安装Python3时,pip3
- docker 中安装 zerotier
AlenTech
docker容器运维
目录Ubuntu中群晖中创建持久性TUN在NAS上安装docker设置容器用法升级ZeroTierUbuntu中创建Zerotier应用容器:dockerrun-d\--namezt\--restart=always\--device=/dev/net/tun\--net=host\--cap-add=NET_ADMIN\--cap-add=SYS_ADMIN\-v/var/lib/zerotie
- OpenCV在Python 3.6中的安装与应用教程
北海有座岛
本文还有配套的精品资源,点击获取简介:OpenCV是一个功能丰富的计算机视觉库,适用于图像处理和分析。本文将介绍如何在Python3.6环境下安装和使用OpenCV,包括处理网络安装困难时的替代方案。同时,本文也涵盖了如何通过预编译的二进制文件(.whl)简化安装过程,并介绍了OpenCV的扩展模块和基础使用方法。1.OpenCV简介和应用领域OpenCV简介OpenCV(OpenSourceCo
- HarmonyOS:创建应用静态快捷方式
ChinaDragonDreamer
HarmonyOSharmonyos鸿蒙
一、前言静态快捷方式是一种在系统中创建的可以快速访问应用程序或特定功能的链接。它通常可以在长按应用图标,以图标和相应的文字出现在应用图标的上方,用户可以迅速启动对应应用程序的组件。使用快捷方式,可以提高效率,节省了查找和打开对应的组件时间;也可以实现个性化定制的需求,创建多个快捷方式,以满足个性化的工作流程和操作偏好。应用配置静态快捷方式,在桌面上展示的效果如下图:安装该应用后,在桌面上长按该应用
- Nuxt后端接口实战:从0到1连接MongoDB数据库
2KMnO₄
nuxt数据库前端mongodbvue
总所周知next框架是一个全栈框架,可以一把梭哈,同时nuxt也支持编写后端接口。网上有很多nuxt教程但是我注意到对于nuxt后端接口的教程比较少,所以我决定写一篇关于nuxt链接数据库编写后端接口的文章,数据库的选择就使用MongoDB。1·安装相关库首先我们需要安装一些依赖mongoose和dotenv,当然dotenv并不是必须的,但是我建议使用dotenv来管理环境变量,这样可以更好的保
- Docker 安装详细教程(适用于CentOS 7 系统)
Future_yzx
eureka云原生
目录步骤如下:1.卸载旧版Docker2.配置Docker的YUM仓库3.安装Docker4.启动Docker并验证安装5.配置Docker镜像加速总结前言Docker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月);EE即企业版,强调安全,付费使用,支持周期24个月。DockerCE分为stabletest和nightly三个更新频道。官方网站上有各种环境下的安装指南,这里主要介绍D
- Python+Selenium环境搭建
程序媛_
SeleniumPythonpythonseleniumpycharm
文章目录1安装Python1.1下载1.2安装注意事项1.3验证环境2安装PyCharm2.1下载PyCharm社区版2.2安装注意事项3安装浏览器及驱动3.1下载Chrome浏览器3.2下载Chromedriver3.3关闭浏览器自动更新关闭3.4配置Chromdriver4安装Selenium5调试6异常解决7自动化Edge浏览器1安装Python1.1下载下载网址:https://www.p
- 如何安装kubernetes1.29.2
卍逝去&夜的星空卍
k8skuberneteslinux运维bash
如何在Ubuntu22.04上安装kubernetes1.29.2一、前提要求1.1.Ubuntu22.041.2.代理节点1.3.提供思路1.4.版本注意二、安装前准备2.1关闭防火墙2.2.关闭selinux2.3.关闭swap交换分区2.4.根据部署规划设置主机名2.5.设置时区(每个节点时间同步)2.6.添加hosts规则(保证每个节点网络畅通)三、开始安装3.1.安装kubeadm,ku
- nginx-1.24.0 安装教程
青春1314
服务器运维
1.下载nginx安装包mkdir-p/home/appcd/home/appwgethttp://nginx.org/download/nginx-1.24.0.tar.gz2.解压缩tar-zxfnginx-1.24.0.tar.gz3.下载nginx二进制包编译所需的工具和依赖yuminstallgcc-c++pcrepcre-develzlibzlib-developensslopenss
- 【unstructured】针对unstructured的pdf提取的hi_res策略不能够连接huggingface.co下载模型的问题而选择本地化模型推理部署的方法
phillihp
llmpython深度学习pdfllamalangchain
目录unstructuredpdfhi_res策略本地推理部署说明python3.9虚拟环境准备安装miniconda创建一个conda-env环境安装unstructured背景知识安装步骤安装detectron2背景知识安装detectron2及其依赖torch,torchvision和torchaudio部署模型背景知识hi_res策略三种模型本地推理部署layoutmodel(detect
- 运维小知识之nginx---..nginx-sticky-module-1.1ngx_http_sticky_misc.cIn function ‘ngx_http_sticky_misc_text_
cody0909
nginx
运维小知识之nginx---..nginx-sticky-module-1.1ngx_http_sticky_misc.cInfunction‘ngx_http_sticky_misc_text_raw背景今天笔者在使用nginx做负载均衡的过程中遇到了一个问题,如何解决session共享的问题,稍一查找发现解决办法不少,笔者使用的是nginx的一直扩展模块(安装和配置已经在前两篇博客有简单的介绍
- ubuntu22.04安装k3s, kuboard
LogicLancer
docker持续集成
直接安装方式更新系统包列表sudoaptupdate安装所需的依赖sudoaptinstall-ycurl下载k3s安装脚本curl-sfLhttps://get.k3s.io|sh-验证k3s安装sudosystemctlstatusk3s获取k3s的tokensudocat/var/lib/rancher/k3s/server/node-token设置kubectl配置mkdir-p$HOME
- cam_lidar_calibration报错,如何解决??
bug菌¹
全栈Bug调优(实战版)ubuntuopencv
本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!全文目录:问题描述解决方案一、错误分析二、解决步骤1.检查系统和软件版本2.查看详细日志3.确保所有依赖库正确安装4.清理并重新编译工作空间5.使用调试工具定位问题6.检
- ETCD集群证书生成
smart_ljh
k8s二进制搭建etcd数据库k8s
安装cfssl工具配置CA证书请求文件创建CA证书创建CA证书策略配置etcd证书请求文件生成etcd证书继续上一篇文章《负载均衡器高可用部署》下面介绍一下etcd证书生成配置。其中涉及到的ip地址和证书基本信息请替换成你自己的信息。安装cfssl工具下载cfssl安装包https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfs
- 在Ubuntu 20.04上安装Node.js 16和npm
电子木头
node.jsubuntunpm
1.更新系统包列表首先,确保你的系统包列表是最新的。sudoaptupdatesudoaptupgrade2.安装Node.js16和npm使用NodeSource提供的安装脚本来安装Node.js16及其附带的npm。添加NodeSource仓库:curl-fsSLhttps://deb.nodesource.com/setup_16.x|sudo-Ebash-安装Node.js16:运行以下命
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include