我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python导入父级别目录

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python导入父级别目录

使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用;为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用。本篇就针对常见的模块调用方法汇总下。

一、同级目录下的调有

程序结构如下:

– class="lazy" data-src
|– mod1.py
|– test1.py
若在程序test1.py中导入模块mod1, 则直接使用

import mod1
或
from mod1 import *;

二、调用子目录下的模块

程序结构如下:

– class="lazy" data-src
|– mod1.py
|– lib
| |– mod2.py
|– test1.py
这时看到test1.py和lib目录(即mod2.py的父级目录),如果想在程序test1.py中导入模块mod2.py ,可以在lib件夹中建立空文件init.py文件(也可以在该文件中自定义输出模块接口),然后使用:

from lib.mod2 import *
或
import lib.mod2.

三、调用上级目录下的文件

程序结构如下:

– class="lazy" data-src
|– mod1.py
|– lib
| |– mod2.py
|– sub
| |– test2.py
这里想要实现test2.py调用mod1.py和mod2.py ,做法是我们先跳到class="lazy" data-src目录下面,直接可以调用mod1,然后在lib上当下建一个空文件init.py ,就可以像第二步调用子目录下的模块一样,通过import lib.mod2进行调用了。具体代码如下:

import sys
sys.path.append("..")
import mod1
import mod2.mod2

we also can export PYTHONPATH=< dir that your want to find>
//
//
//
//
一个python文件就是一个模块,使用独立的命名空间,但实际使用过程中单单用模块来定义python功能显然还不够。因为一个大型的系统几千上万个模块是很正常的事情,如果都聚集在一起显然不好管理并且有命名冲突的可能,因此python中也出现了一个包的概念。

一、python中的包介绍
包是通过使用“点模块名称”创建Python模块命名空间的一种方法。列如,模块名称 A.B 表示一个在名为 A的包下的名为B的子模块。就像使用模块让不同模块的作者无需担心彼此全局变量名称(冲突)一样,点模块名称让多模块包的作者无需担心彼此的模块名称(冲突)。模块包在文件系统中的表示就是一系列目录的集合,通过目录的层级结构形成模块包的层级结构,最终的模块文件就位于最后的目录中。比如定义一个简单的模块在包pkg下,那么执行如下步骤:

1、在D:\temp目录下建立一个目录,名称是pkg

2、在pkg下建立一个init.py的模块,内容为空即可

3、在pkg目录下建立一个python模块module_3.py,内容如下:

”’pkg.module_3.py模块的内容”’

print(“Hello World”)

def func1():
print(“This is funciton one”)
注意第2步,必须要在每一个包目录下建立一个init.py的模块,这个是python的规定,用来告诉python解释器将该目录当成一个内容包,即该目录是一个包,里面包含了python模块的。这个是必须的,如果不指定,则我们在python的交互模式下导入module_3.py这个模块时会报如下错误:

import pkg.module_3
Traceback (most recent call last):
File “”, line 1, in
ImportError: No module named pkg.module_3
因此包目录下的init.py模块是必须的,但内容是可选的,可以为空内容,也可以写一些代码或作其他用途。PVM在导入某个包下的模块时会先导入这个包下的init.py模块,比如我们将init.py模块的内容指定如下:

print(“This is init module”)
然后在交互模式下重新导入这个包,则效果如下:

import pkg.module_3
This is init module
Hello World

  可见,PVM首先加载的是__init__.py模块,然后才是找该目录下的其他模块并进行加载。

二、python中的模块搜索路径
在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下:

1、在当前目录下搜索该模块;

2、在环境变量PYTHONPATH中指定的路径列表中依次搜索;

3、在python安装路径中搜索

  事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息,我们可以打印看下sys.pth都包含些哪些路径:

import sys
print(sys.path)
[”, ‘C:\Windows\system32\python27.zip’, ‘D:\tools\Python27\DLLs’, ‘D:\to
ols\Python27\lib’, ‘D:\tools\Python27\lib\plat-win’, ‘D:\tools\Python27\
\lib\lib-tk’, ‘D:\tools\Python27’, ‘D:\tools\Python27\lib\site-packages’,
‘D:\tools\Python27\lib\site-packages\wx-2.8-msw-unicode’]
不同的机器上显示的路径信息可能不一样,但至少都包含上面提到的3点。知道了这个路径搜索规律后,我们就可以很方便的将某些目录动态的增加到搜索路径中去,比如在E盘下建立一个python模块module_4.py,内容如下:

print(“Hello world”)
print 2 ** 2
然后在交互模式下执行导入:

import module_4
Traceback (most recent call last):
File “”, line 1, in
ImportError: No module named module_4
报错是预料中的,因为E盘并不在python模块的搜索路径中,然后我们动态的增加这个路径到搜索模块中,再执行导入:

sys.path.append(“E:\”)
print(sys.path)
[”, ‘C:\Windows\system32\python27.zip’, ‘D:\tools\Python27\DLLs’, ‘D:\to
ols\Python27\lib’, ‘D:\tools\Python27\lib\plat-win’, ‘D:\tools\Python27\
\lib\lib-tk’, ‘D:\tools\Python27’, ‘D:\tools\Python27\lib\site-packages’,
‘D:\tools\Python27\lib\site-packages\wx-2.8-msw-unicode’, ‘E:\’]
import module_4
Hello world
4
首先是在sys.path中增加了E盘根目录作为搜索路径,随后的打印中可以看到确实已经被添加到sys.path中去了,然后再执行导入就会正常导入模块并执行模块中的语句了。当然,我们通过交互模式新增加的搜索路径也仅仅是在当前交互模式下有效,一旦退出了那么就就失效了。因此,我们可以根据搜索路径规则的第2步中说的来设置PYTHONPATH环境变量就可以满足不同使用情况下都可以找到模块了。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python导入父级别目录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python导入父级别目录

使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不过如果是自己遍写的依赖包,又不想安
2023-01-31

python怎么导入上级目录下的文件

要导入上级目录下的文件,可以使用相对路径。假设你的文件结构如下:```- project- main.py- utils- helper.py```要在`main.py`中导入`helper.py`,可以按照以下方式导入:```python
2023-09-17

Python3 导入上级目录中的模块

python导入同级别模块很方便:import xxx要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件from dirname import xxx要导入上级目录,可以使用 sys.path首先 sys.path 的
2023-01-31

Pythonimport导入上级目录文件的方法

这篇文章主要介绍了Pythonimport导入上级目录文件,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-01-18

导入别人的android studio项目

标题1.直接run别人的项目。 标题2.手动导入 1.去到要导入项目的目录下把.idea,.iml,local.properties删除(表示所有)2.进入app文件夹同理把build,.iml删除*3.打开已经run成功的项目的build
2022-06-06

Python中import导入上一级目录模块及循环import问题的解决

import上一级目录的模块 python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改。 要import某个目录的module,我们sys.path.insert(0,somedir
2022-06-04

eclipse如何导入别人的项目

在Eclipse中导入别人的项目,可以按照以下步骤进行操作:1. 打开Eclipse,并确保已经安装了相应的开发工具,如Java开发工具(JDT)等。2. 点击菜单栏的 "File"(文件),然后选择 "Import"(导入)。3. 在弹出
2023-09-15

从另一个目录导入文件

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《从另一个目录导入文件》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力
从另一个目录导入文件
2024-04-04

python如何引入同级目录下的文件

可以使用相对路径来引入同级目录下的文件。假设有如下的目录结构:```- project- main.py- utils- helper.py```要在 `main.py` 中引入 `helper.py`,可以使用下面的代码:```pytho
2023-09-08

python导入其他目录下模块的四种情况

在python工程中常常需要使用import引入自己编写的其他模块,但其它模块有时不在同一个文件夹下,下面这篇文章主要给大家介绍了关于python导入其他目录下模块的四种情况,需要的朋友可以参考下
2022-12-09

Python在不同目录下导入模块的实现方法

python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。 1. 同级目录下的调用 目录结构如下:? src |? mod1.py
2022-06-05

python怎么进入目录

可以通过 os.chdir() 方法进入目录,其语法为 os.chdir("directory_path"),其中 directory_path 为要进入的目录的路径。该方法会将当前的工作目录更改为指定的目录,方便文件处理和目录操作。若指定
python怎么进入目录
2024-05-14

Python import同级目录报错

参考:http://blog.csdn.net/geekleee/article/details/52505233pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->Source
2023-01-31

Python 同级目录import报错

在使用protobuf时,我们自己了各种Options的时候,在生成的python文件会在同级目录中引用,所以这个时候我们不能做到,加个__init__.py文件了事然后在文件里面写 import mudole.file这样的代码,因为我们
2023-01-31

python 在不同层级目录import

http://www.cnitblog.com/seeyeah/archive/2009/03/15/55440.htmlpython包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种
2023-01-31

Python如何调用同级目录

这篇文章将为大家详细讲解有关Python如何调用同级目录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。同级目录(兄弟目录)调用看书看得好好的,一写代码就出错!!!这个问题是大家初学Python的时候会遇到
2023-06-29

浅谈java项目与javaweb项目导入jar包的区别

现在的项目基本上都是java web项目,所以导入jar包会出现问题,主要介绍一下java项目与javaweb项目的区别:java项目:在classLoader加载jar和class的时候,是分开加载的,一般jar导入分两种:1.在web-
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录