有关python库
官方库
#1、导入某模块
import os
#2、导入OS模块中的system方法
from os import system
#3、导入某模块中的孙子模块中的xx方法,并重命名
from module.xx.xx import xx as rename
#4、导入OS中的所有模块
#不用进行OS.method(),直接method()
#但是不建议使用,因为会造成文件名混乱
from os import *
自建库
参考,有关sys.append()
- 使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。
当你写了个.py文件,想作为库在另一文件中使用
import my_first_mod
#my_first_mod.sayhi()
python程序中使用 import XXX 时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。
因此,还需要将此库的路径加入path,因为默认情况下,python导入文件或者模块,会在sys.path里找模块的路径。如果在当前搜索路径列表sys.path中找不到该模块的话,就会报错。
path里面存着这些路径,每次调用模块都会顺序搜索这些路径(以我现在的路径为例),其中第一行是进程所在的文件路径,每次运行都会把此路径添加进去,所以把库.py文件放在此文件夹下是可以找到的(跟进程.py并列)。
path=[‘d:\0.自主学习\Python基础\乱七八糟的知识点’,
‘E:\1.Tool\0.Miniconda3\python38.zip’,
‘E:\1.Tool\0.Miniconda3\DLLs’,
‘E:\1.Tool\0.Miniconda3\lib’,
‘E:\1.Tool\0.Miniconda3’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\win32’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\win32\lib’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\Pythonwin’, ]
sys.path的用法
- 向sys.path中添加搜索路径
import sys
sys.path.append(path) # path 代表的是一个路径
- 查看当前搜索路径
import sys
print(sys.path)
path=['**d:\\0.自主学习\\Python基础\\乱七八糟的知识点**',
'E:\\1.Tool\\0.Miniconda3\\python38.zip',
'E:\\1.Tool\\0.Miniconda3\\DLLs',
'E:\\1.Tool\\0.Miniconda3\\lib',
'E:\\1.Tool\\0.Miniconda3',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin', ]
sys.path.append(os.pardir)
python中的__file__变量给出了.py文件的位置
#该函数文件为mnist_show.py
import sys, os
#pardir代表parent directory
sys.path.append(os.pardir)#load_mnist为dataset文件下的mnist.py中的函数
from dataset.mnist import load_mnist

mnist_show.py文件的当前工作目录为ch03,但是load_mnist()函数的mnist.py文件在dataset目录下。因此,mnist_show.py文件不可以跨文件直接导入mnist.py文件。
sys.path.append(os.pardir)语句实际上是把父目录deep-learning-from-scatch加入到sys.path(Python 的搜索目录模块的路径集中),从而可以导入deep-learning-from-scatch下的任何目录(包括dataset目录)中的任何文件。
【大胆推测】:因为路径添加的是…/deep-learning-from-scatch, 所以只能from dataset.mnist 而不是直接 import mnist
print(__file__)
打印之后,即可得到.py的位置d:\0.自主学习\Python基础\乱七八糟的知识点\2、自定义模块.py
常用的方法是结合os.path.abspath(os.path.dirname(file)),得到.py文件的所在目录的绝对路径,从而构造出同目录下另一文件的绝对路径
import os
basedir = os.path.abspath(os.path.dirname(__file__))
abs_path_to_another = (os.path.join(basedir,'another'))
总代码
#导入同级目录
import sys
import os
#file是此文件所在位置
_path=__file__
print(f'path={_path}')
#os.path.dirname()去掉最后一级
base_path=os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
print(f'base_path={base_path}')
print(f'path={sys.path}')
#将相对于此进程的上一级路径添加进path列表
sys.path.append(base_path)
print(f'添加后的path={sys.path}')
#这样再导入此路径下的库就不会报错了
import my_first_mod
#my_first_mod.sayhi()
path=d:\0.自主学习\Python基础\乱七八糟的知识点\2、自定义模块.pybase_path=d:\0.自主学习\Python基础path=['d:\\0.自主学习\\Python基础\\乱七八糟的知识点', 'E:\\1.Tool\\0.Miniconda3\\python38.zip', 'E:\\1.Tool\\0.Miniconda3\\DLLs', 'E:\\1.Tool\\0.Miniconda3\\lib', 'E:\\1.Tool\\0.Miniconda3', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin'] 添加后的path=['d:\\0.自主学习\\Python基础\\乱七八糟的知识点', 'E:\\1.Tool\\0.Miniconda3\\python38.zip', 'E:\\1.Tool\\0.Miniconda3\\DLLs', 'E:\\1.Tool\\0.Miniconda3\\lib', 'E:\\1.Tool\\0.Miniconda3', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin', 'd:\\0.自主学习\\Python基础']
相关文章:
有关python库
官方库 #1、导入某模块 import os #2、导入OS模块中的system方法 from os import system #3、导入某模块中的孙子模块中的xx方法,并重命名 from module.xx.xx import xx as rename #4、导入OS中的所有模块 #不用进行OS.method(),直接method(࿰…...
java项目之电影网站(ssm框架)
项目简介 电影网站实现了以下功能: 登录模块用例中用户包括用户和管理员和二种角色,分别可以进行其对应的身份登录或取消登录,关闭系统。用户模块主要包括首页,电影信息,电影商城,社区交流,电…...
技术分享 | app自动化测试(Android)--触屏操作自动化
导入TouchAction Python 版本 from appium.webdriver.common.touch_action import TouchAction Java 版本 import io.appium.java_client.TouchAction; 常用的手势操作 press 按下 TouchAction 提供的常用的手势操作有如下操作: press 按下 release 释放 …...
Java连接数据库并查询表中的全部数据
1、导入相关jar包 这里创建简单的maven项目,我们导入相关的jar包 相关依赖: <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependenc…...
STM32存储左右互搏 SPI总线读写FLASH W25QXX
STM32存储左右互搏 SPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元,W25QXX系列Flash有不同容量的型号,如W25Q64的容量为64Mbit,也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库操作W25Q各型号FLASH的例程。 W25QXX介绍 W25QX…...
【EI会议征稿】第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)
第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024) 2024 4th International Conference on Computer Network Security and Software Engineering 第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)将于2024年2月…...
解决pip 安装 pyhash错误
1 pip 安装 pyhash错误 Collecting pyhash (from Calvin0.0.1) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/f0/bf/4db9bed05d10824a17697f65063de19892ca2171a31a9c6854f9bbf55c02/pyhash-0.9.3.tar.gz (602 kB) Preparing metadata (setup.py) … error error:…...
解决 win11 vmware 中centos 网络不能访问外网
解决 win11 vmware 中centos 网络不能访问外网 1、进入win11 高级设置,找到centos 虚拟机使用的网卡 2、看网卡的其他属性 3、按照红圈部分,配置成一样的就行 4、进入到虚拟机配置中,配置成如图一样的NAT模式 5、再进入编辑 -》虚拟网络编辑…...
Flutter vs 前端 杂谈:SliverAppBar、手动实现Appbar、前端Html+JS怎么实现滚动变化型Appbar - 比较
Flutter vs 前端 杂谈 SliverAppBar的弹性背景的显隐效果使用HtmlJS怎么实现 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550…...
Qt 二维码生成与识别
1.简介 QZXing是一个基于Qt框架的二维码解码库,它是对ZXing(Zebra Crossing)开源项目的一个Qt封装。ZXing是一个功能强大的开源二维码解码库,支持多种类型的码,包括QR码、DataMatrix码、Aztec码等。 QZXing提供了一个…...
jacoco和sonar
目录 jacoco 引入依赖 构建配置修改 单元测试 生成报告 查看报告 报告说明 1. Instructions 2. Branches 3. Cyclomatic Complexity 4. Lines 5. Methods 6. Classes sonar7.7 基础环境 需要下载软件 解压文件并配置 运行启动 jacoco 引入依赖 <dep…...
Django系列之Serializer的source参数使用、自定义序列化方法
数据准备 models.py from django.contrib.auth.models import AbstractUser from django.db import modelsclass Publish(models.Model):name models.CharField(max_length32)city models.CharField(max_length8)email models.CharField(max_length32)def __str__(self):r…...
Java从入门到精通
Java从入门到精通 1. Java概述1.1 Java是什么1.2 为什么用Java1.3 Java能做什么1.4 Java技术体系平台2. Java快速入门2.1 Java开发环境的准备:JDK简介、安装、常用命令如何使用JavaJDK产品的发展史获取JDK如何验证能用javac和java其他常用命令行命令2.2 Java入门程序-HelloWor…...
电路布线问题动态规划详解(做题思路)
对于电路布线问题,想必学过动态规划的大家都很清除。今天就来讲解一下这个动态规划经典题目。 目录 问题描述输入分析最优子结构代码 问题描述 在一块电路板的上、下2端分别有n个接线柱。根据电路设计,要求用导 线(i,π(i))将上端接线柱与下端接线柱相…...
webpack 的 Loader 和 Plugin 的区别,常见的 loader 和 plugin 有哪些?
结论先行: 1、 Loader 和 Plugin 的区别 Loader 也叫做就是“加载器”,因为 webpack 原生只能解析 js 文件,而对于其他类型文件,则需要借助 loader。所以 loader 的作用就是实现对不同格式文件的解析和处理,例如把 E…...
云计算实战项目之---学之思在线考试系统
简介: 学之思开源考试系统是一款 java vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序,能覆盖到pc机和手机等设备。 支持多种部署方式:集成部署、前后端分离部署、docker部…...
研究生学术与职业素养讲座MOOC---期末复习(1-15)
目录 单选题多选题填空题判断题 单选题 我国制造科学与技术与工业发达国家相比的阶段性差距不包括:人工成本高不属于面向产业的学科:哲学哪个国际前沿本讲未提:纳米技术早期的科学研究不分学科是以达芬奇为例说的待遇不是管理者与领导者的区…...
kube-prometheus-stack监控k8s1.24+ docker缺少图像
1.24 中 cAdvisor 指标中缺少图像、名称和容器标签 由于 Kubernetes 1.24 已经从 cadvisor 中删除了 docker 插件,因此虽然可以使用 cri-dockerd 来适配容器运行时,但 cadvisor 无法获取有关图像标签等 docker 容器信息。进而导致 grafana 很多图像无数据。解决方法为对 pro…...
【C/PTA——循环结构3】
C/PTA——循环结构3 7-1 二分法求多项式单根1.题目要求2.代码实现 7-2 循环-十进制转化1.题目要求2.代码实现 7-3 梅森数1.题目要求2.代码实现 7-4 单词长度1.题目要求2.代码实现 7-5 21循环-求和31.题目要求2.代码实现 7-6 21循环-金字塔1.题目要求2.代码实现 7-7 循环-杨辉三…...
MAC设备(M1)环境下编译安装openCV for Java
最近发现一个需求,可以用openCV来实现,碰巧又新买了mac笔记本,就打算利用业余时间安装下openCV。这里将主要步骤记录下,希望能帮助有需要的人。 1、准备编译环境 #查询编译opencv相关依赖 brew info opencv查询结果如下图所示&a…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
