BASEDIR
1)正常写python程序会有一个可执行的bin.py文件,假如这个文件需要导入my_module里面定义的模块,应该怎么设置sys.path(此时可以直接导入), 因为bin和model属于同级目录
2)文件夹目录结构如下,因为bin不在与my_module同级目录下,而是在bin目录下,如果直接使用from my_module import main调用模块肯定会报错,需要把对应的上一级目录day21_lesson添加到sys.path

一,使用绝对路径添加:

使用绝对路径把对应的目录添加到sys.path里面相当于把程序写死了,一旦目录结构发生变化或者复制到其他主机将不能运行
二,使用相对路径添加
__file__变量是文件的名称 print(__file__) 执行结果D:/blzfmima/python3_s3/day21/day21_lesson/bin/bin.py
os.path.dirname 是os内置方法取文件的路径这里连续使用两次方法取文件bin.py,
第一次执行结果为 路径为D:/blzfmima/python3_s3/day21/day21_lesson/bin
然后在针对这个路径再取一次路径获取需要的路径D:/blzfmima/python3_s3/day21/day21_lesson/

以上可以在pycharm里面正常实现调用,但是在终端执行还是会出错,因为Pycharm会自作主张添加绝对路径
三,终极方法 使用os.path.abspath取文件bin.py绝对路径 然后使用两次os.path.dirname取到上两层的路径及本列的路径D:/blzfmima/python3_s3/day21/day21_lesson/

BASEDIR的更多相关文章
- TOMCAT-报错The BASEDIR environment variable is not defined correctly
<span style="font-size:18px;">The BASEDIR environment variable is not defined correc ...
- 【TOMCAT启动异常】The BASEDIR environment variable is not defined correctly
<span style="font-size:18px;">The BASEDIR environment variable is not defined correc ...
- linux环境中通过useradd命令,创建用户的时候指定用户的base-dir
需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...
- Linux下Tomcat启动报 The BASEDIR environment variable is not defined
今天是2017年2月27.在Linux下部署Tomcat官网下载的Tomcat 8.5,结果启动startup.sh报如下错,即使只是跑version.sh也报同样的错. $ ./version.sh ...
- Can't determine basedir from my_print_defaults mysqld
我的环境是:centos7 + mysql5.7.26,今天在用 mysqldumpslow 命令查看慢查询日志时出现下面的错误 [root@localhost ~]# mysqldumpslow - ...
- asp.net core 3 使用nlog日志组件,使用$ {basedir}保存位置不对,记录下怎么解决
$ {basedir}指向的是 AppDomain.CurrentDomain.BaseDirectory, Asp.Net.Core的解决方法可能如下(在Program.cs中添加两行): var ...
- Maven的属性,${project.basedir},${project.build.directory}:项目构件输出目录,默认为 target/
内置属性 主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本 POM属性 用户可以使用该属性引用POM文件中对应元素的值,常用的PO ...
- day22、模块-basedir、os、json模块、pickle和正则模块。
四.正则. re模块: 作用:针对的对象:字符串, 课前引入: 例子一. s='dsdsadsadadsalexdsds's.find('alex') 如何找到字符串内部的alex;?过去学习可使用方 ...
- mysq 安装时候进行生成数据库系统时候执行语句 ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql 时候报错
我在安装数据库时候在系统进行生成数据库时候出现下面问题,就是在 scripts里面mysql_install_db没有执行权限, 进入到scripts目录下,执行chmod 777 mysql_ins ...
随机推荐
- Windows10 VS2017 C++ ini解析(使用simpleini头文件)
simpleini项目地址: https://github.com/brofield/simpleini 下载,新建项目,并将SimpleIni.h文件通过包含目录的方式加载进来. 创建test.in ...
- 自动化测试-15.selenium单选框与复选框状态判断
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...
- CDMA码片序列问题
要想知道到底是怎么算的 建议看见这篇博客的任何一位去先看一下这篇博客:https://blog.csdn.net/dog250/article/details/6420427 在CDMA中.每一个比特 ...
- 神州数码广域网PPP封装CHAP认证配置
实验要求:掌握PPP封装协议下的CHAP认证 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip a ...
- SQLI DUMB SERIES-12
(1)检测闭合方式:在username上输入" admin" " 说明输入的username后还有双引号和括号 方法一: (2)通过其他途径知道用户名即可.如 输入&qu ...
- centos安装多个tomcat
1.参考前文安装jdk.第一个tomcat 2.安装第二个tomcat后,修改/etc/profile vi /etc/profile #tomcat1 export CATALINA_BASE=/o ...
- 2019西湖论剑网络安全技能大赛(大学生组)部分WriteUp
这次比赛是我参加以来成绩最好的一次,这离不开我们的小团队中任何一个人的努力,熬了一整天才答完题,差点饿死在工作室(门卫大爷出去散步,把大门锁了出不去,还好学弟提了几个盒饭用网线从窗户钓上来才吃到了午饭 ...
- myelipse与maven结合配置
添加插件 指定maven中jar包默认仓库地址 maven中debug模式中断点关联不到项目代码的问题 解决方法参考文章:https://blog.csdn.net/urnot/article/det ...
- 记录安装 java 环境,部署环境变量遇到的小坑
情况:先安装 jdk 7,再安装 jdk8,发现 java 的环境自动变成了 jdk8 解决: 1.在 系统的环境变量下,多出了一行: C:\Program Files (x86)\Common Fi ...
- python调用mediainfo工具批量提取视频信息
写了2个脚本,分别是v1版本和v2版本 都是python调用mediainfo工具提取视频元数据信息 v1版本是使用pycharm中测试运行的,指定了视频路径 v2版本是最终交付给运营运行的,会把v2 ...