首页 > 其他分享 >import引用自定义包、模块sys.path.append() ---转

import引用自定义包、模块sys.path.append() ---转

时间:2023-09-22 11:24:22浏览次数:55  
标签:__ sys 自定义 --- path dirname os append

https://blog.csdn.net/Frank_LJiang/article/details/122656604

import引用自定义包、模块)sys.path.append(
问题
sys.path.append()
os.path.dirname(__file__)
问题
当引用不同文件下的自定义包时,容易出现以下问题

ModuleNotFoundError: No module named 'ge'

由于import xxx时,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块,不能搜索其它目录。因此,需要我们手动使用sys.path.append()添加

sys.path.append()
手动添加python能搜索的目标目录

import sys
# print(sys.path) # 显示当前python解释器会搜索的目录

sys.path.append('需要引用模块的地址') # 手动添加自定义搜索目录

# sys.path.append("..") # 添加当前路径的上一级目录

os.path.dirname(file)
import os

path1 = os.path.dirname(__file__)
print(path1) # 获取当前运行脚本的绝对路径

path2 = os.path.dirname(os.path.dirname(__file__))
print(path2) # 获取当前运行脚本的绝对路径的上一级路径(去掉最后一个路径)

path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
print(path3) # 获取当前运行脚本的绝对路径的上一级路径的上一级路径(去掉最后2个路径)
# ......

path6 = os.__file__
print(path6) # 获取os所在的目录

比如

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
# 表示添加当前目录的上一级目录到python解释器的搜索目录中

 

标签:__,sys,自定义,---,path,dirname,os,append
From: https://www.cnblogs.com/bile/p/17721872.html

相关文章

  • docker-compose 部署 jenkins Blue Ocean插件
    DockerfileFROMjenkins/jenkins:2.414.2-lts-jdk17USERrootRUNapt-getupdate&&apt-getinstall-ylsb-releaseRUNcurl-fsSLo/usr/share/keyrings/docker-archive-keyring.asc\https://download.docker.com/linux/debian/gpgRUNecho"deb[a......
  • (五)Unity性能优化-Texture导入设置检查与优化
    TextureShape-2D最常用的2D纹理,默认选项-Cube一般用于天空和与反射探针,默认支持Default、Normal、SingleChannel几种类型纹理,可以通过Assets>Create>Legacy>Cubemap生成,也可以通过C#代码Camera.RenderToCubemap在脚本中生成-2DArray2D纹理数组,可以极大提高大......
  • ABAP-ITS声音配置
    1.系统有标准的声音,可以直接复制 2.创建HTML文件1`if((~messageline!="")&&(~itsmobilemsgsound=="1")||(~currdynpro.messagesound!=""))2if(~messagetype=="S"||~currdynpro.messagesound==&quo......
  • 并发编程系列-CAS
    锁(lock)的代价锁是用来做并发最简单的方式,其代价也是最高的,Java在JDK1.5之前都是靠synchronized关键字来加锁。但是加锁机制会有如下几个问题:加锁、释放锁会需要操作系统进行上下文切换和调度延时,在上下文切换的时候,cpu之前缓存的指令和数据都将失效,这个过程将增加系统开销。......
  • 在选择屏幕中,根据按钮动态显示时,如果忘记写USER-COMMAND时会发生的问题
    顾问要求在,选择屏幕单据查询时显示成圈线和生产线选择框,在明细查询时隐藏,听需求是一个很简单的选择屏幕隐藏的功能,实现代码如下PARAMETERS:p_djRADIOBUTTONGROUPcxDEFAULT'X',"单据查询p_mxRADIOBUTTONGROUPcx."......
  • 已解决 File “F:\File_Anaconda\2020CV\yolov5-master\20200701.py“, line 5 Sy
    已解决File“F:\File_Anaconda\2020CV\yolov5-master\20200701.py”,line5SyntaxError:Non-UTF-8codestartingwith‘\xc0’infileF:\File_Anaconda\2020CV\yolov5-master\20200701.pyonline5,butnoencodingdeclared;seehttp://python.org/dev/peps/pe......
  • font-family样式支持多个属性
     font-family样式支持多个属性:在CSS中,可以通过在属性值中使用逗号分隔来指定多个字体族名称。浏览器会按照所指定的顺序逐个检查字体族名称,直到找到一个可用的字体为止。如果找不到可用字体,则会使用浏览器的默认字体。以下是一个示例: font-family:Arial,Helvetica,san......
  • 2023-09-21 裸k交易法 日内模型 低开
    低开高走  低开低走  ......
  • [CSP-J 2021] 插入排序
    题目描述插入排序是一种非常常见且简单的排序算法。小Z是一名大一的新生,今天H老师刚刚在上课的时候讲了插入排序算法。假设比较两个元素的时间为\(\mathcalO(1)\),则插入排序可以以\(\mathcalO(n^2)\)的时间复杂度完成长度为\(n\)的数组的排序。不妨假设这\(n\)个数......
  • RSA - leak=d-q
    kotori-RSA-\(d-q\)推导\(a^{\phi(n)}\equiv1\pmod{n}\)(欧拉定理)\[\begin{aligned}ed&\equiv1\pmod{\phi(n)}\\ed&=1+k\times\phi(n)\\\end{aligned}\]\[\begin{aligned}m^{e(d-q)}&\equivm^{ed-e......