【python】linux和pycharm导入自定义模块或包的方法(各种导包错误的终极解决方案)「建议收藏」

【python】linux和pycharm导入自定义模块或包的方法(各种导包错误的终极解决方案)「建议收藏」目录获取路径的方法导包前的准备工作:跨模块导包获取路径的方法结构展示:#-*-coding:utf-8-*-”’@Author:knocky@Blog:https://blog.csdn.net/zzx188891020@E-mail:188891020@qq.com@File:main.py@CreateTime:2020/5/1820:03”’importsys,osprint(‘__file__>>>%s’%__file__

大家好,欢迎来到IT知识分享网。

获取路径的方法

结构展示:
在这里插入图片描述

# -*- coding:utf-8 -*-
''' @Author: knocky @Blog: https://blog.csdn.net/zzx188891020 @E-mail: 188891020@qq.com @File: main.py @CreateTime: 2020/5/18 20:03 '''
import sys, os
print('__file__ >>> %s' %__file__)
print('sys.argv[0] >>> %s' % sys.argv[0])  # 获取当前主程序路径
print("os.path.abspath('.') >>> %s" % os.path.abspath('.'))  # 工作目录绝对路径
print("os.getcwd() >>> %s" % os.getcwd())  # 工作目录绝对路径
print("os.path.abspath('test.txt') %s" % os.path.abspath('test.txt'))  # 工作目录绝对路径+文件名 即使文件不存在也会拼接
print("os.path.abspath('..') >>> %s" % os.path.abspath('..'))  # 工作目录绝对路径的父路径
print("os.path.abspath(os.curdir) >>> %s" % os.path.abspath(os.curdir))  # 工作目录绝对路径

# =====================效果展示=====================
# __file__ >>> D:/Python file/pycharm file/Test_package/package/package1/main.py
# sys.argv[0] >>> D:/Python file/pycharm file/Test_package/package/package1/main.py
# os.path.abspath('.') >>> D:\Python file\pycharm file\Test_package\package\package1
# os.getcwd() >>> D:\Python file\pycharm file\Test_package\package\package1
# os.path.abspath('test.txt') D:\Python file\pycharm file\Test_package\package\package1\test.txt
# os.path.abspath('..') >>> D:\Python file\pycharm file\Test_package\package
# os.path.abspath(os.curdir) >>> D:\Python file\pycharm file\Test_package\package\package1


如果代码看不清楚就看图片:
在这里插入图片描述

导包前的准备工作:

由于linux无法像pycharm一样设置根目录,所以需要添加进系统列表
在这里插入图片描述
各种添加环境变量的方法如下:

# linux下无法像python一样设置Sources Root
# 所以需要使用sys.path.append()添加根目录进系统路径

# 所以获取根目录有以下几种方法:
import sys, os
path = os.path.abspath('../..')
path1 =os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
print('path:',path)
print('path1:',path1)
sys.path.append(path)  # 会追加到列表最尾部
print(sys.path)

# =====================效果展示=====================
# path: D:\Python file\pycharm file\Test_package
# path1: D:/Python file/pycharm file/Test_package

# ['D:\\Python file\\pycharm file\\Test_package\\package\\package1',
# 'D:\\Python file\\pycharm file\\Test_package', 
# 'D:\\ProgramData\\Anaconda3\\python37.zip', 
# 'D:\\ProgramData\\Anaconda3\\DLLs',
# 'D:\\ProgramData\\Anaconda3\\lib',
# 'D:\\ProgramData\\Anaconda3', 
# 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages', 
# 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages\\win32', 
# 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages\\win32\\lib', 
# 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages\\Pythonwin',
# 'D:\\ProgramData\\Anaconda3\\lib\\site-packages', 
# 'D:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 
# 'D:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 
# 'D:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 
# 'D:\\Program Files\\JetBrains\\PyCharm 2018.1.2\\helpers\\pycharm_matplotlib_backend', 
# 'D:\\Python file\\pycharm file\\Test_package' ]

运行效果如下
在这里插入图片描述

跨模块导包

# 官方推荐的导包方式,如果是跨包导入,最好使用从顶层向下的方式导入
# 一般来说顶层是存在目录中的,通过sys.path查看,如果不存在,就添加进去
import sys, os
path = os.path.abspath('../..') # 向上两层,多层按需修改
sys.path.append(path)  # 会追加到列表最尾部
from conf.conf1.config import TEST_CONF_DIC  # 先追加路径,然后再导包
print(TEST_CONF_DIC['name'])  # 我自己测试的内容
print(sys.path)  # 查看系统path是否添加成功,append的结果一般在末尾

文件内容截图
在这里插入图片描述

在这里插入图片描述

说的再多也没用,再看不懂,就自己下载代码查看吧。写的好,就点个赞吧,谢谢。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25234.html

(0)
上一篇 2023-07-31 09:33
下一篇 2023-07-31 11:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信