首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何导入另一个文件夹中的Python模块,而无需相对导入和编辑PYTHONPATH

在Python中,要导入另一个文件夹中的模块,可以使用以下方法,而无需使用相对导入或编辑PYTHONPATH:

  1. 使用sys.path.append()方法:
    • 首先,导入sys模块:import sys
    • 然后,使用sys.path.append()方法将目标文件夹的路径添加到sys.path中:sys.path.append('/path/to/another_folder')
    • 最后,可以直接导入目标文件夹中的模块:import module_name
    • 例如,如果要导入名为"utils.py"的模块,该模块位于"/path/to/another_folder"文件夹中,可以按照以下方式导入:
    • 例如,如果要导入名为"utils.py"的模块,该模块位于"/path/to/another_folder"文件夹中,可以按照以下方式导入:
  • 使用相对导入: 如果目标文件夹是当前文件夹的子文件夹,可以使用相对导入来导入模块。相对导入使用点号(.)表示当前文件夹,使用双点号(..)表示上级文件夹。
    • 假设当前文件夹为"main_folder",目标文件夹为"another_folder",并且要导入名为"utils.py"的模块。
    • 在"main_folder"中的Python文件中,可以使用相对导入来导入模块:from ..another_folder import utils

无论使用哪种方法,都可以成功导入另一个文件夹中的Python模块,而无需相对导入或编辑PYTHONPATH。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详解Python项目开发时自定义模块对象导入使用

背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中对象;2)对于大型系统开发,一般不会把所有代码放到单个文件,而是根据功能将其分类并分散多个模块,在编写小型项目时最好也能养成这样好习惯...本文介绍Python自定义模块对象导入使用。...add,这是因为child文件夹被认为是一个包,add.py是包模块,并没有随着child一起导入。...继续执行下面的代码: >>> import child.add >>> child.add.add(3,5) 8 自定义模块对象成功被导入并能够正常使用,也就是说,如果要使用对象在子模块,应该单独使用...原因在于,如果文件夹作为包来使用,并且其中包含__init__.py文件时,__init__.py文件特殊列表成员__all__用来指定from ... import *时哪些子模块或对象会被自动导入

3K50

一文搞懂 Python 模块包,在实战最佳实践

在 Python 3.3 版本以前,文件夹下必须要包含一个 __init__.py 文件,此文件夹才会被视为包, Python 3.3 版本之后,文件夹直接被视为包,无须显式包含 __init__....当模块以 import 导入方式加载调用时,其模块 __name__ 变量会含有包名模块名这些重要信息,以用于相对导入模块以脚本方式直接运行时,其 __name__ 值始终为 __main...二者选其一,如何抉择 绝对导入相对导入都不能满足我想要效果:既支持从主程序执行,也支持单独测试某个模块现在,二者在不做任何特殊处理情况下,均不支持单独以脚本直接执行方式,测试某个模块。...要如何解决? 解决方案有3种,前两种针对绝对导入,最后一种针对相对导入。...通常情况下,我们自己写模块,仅仅在本项目内使用,完全可以借助于 PYTHONPATH 环境变量,使用绝对导入来引用本地任意模块,使用相对导入在 __init__.py 引用包模块

1.6K41
  • Python类、模块、包区别

    你在其他需要这些功能文件导入模块,就可重用这些函数变量。一般用module_name.fun_name,module_name.var_name进行使用。...: 包含脚本当前路径,当前路径 PYTHONPATH 默认安装路径 sys.path初始化完成之后可以更改 编译过Python文件: .pyc文件 built-in 模块 上面的例子,当...这里你就需要通过某种途径,如sys.path,来告知Python了。sys.path返回模块搜索列表,通过前后输出对比代码,应能理悟到如何增加新路径方法了吧。...我们知道python是解释性脚本语言,.pyc是经过编译后字节码,这一工作会自动完成,而无需程序员手动执行。...然后是一些模块文件子目录,假如子目录也有 init.py 那么它就是这个包子包了。 在创建许许多多模块后,我们可能希望将某些功能相近文件组织在同一文件夹下,这里就需要运用包概念了。

    1.2K20

    Python入门到放弃 | 超简单 跟我学(八)

    注意到 Python ,数组索引从 0 开始计数不是从 1 开始。 sys.path 是模块导入时要搜索目录列表。...字节码文件 .pyc 导入模块是一个相对而言开销较大操作,因此,Python 试用了一些手段来使得导入模块操作更加快速。...这在一种情形下特别有用:确定模块导入了?还是在独立地运行。如之前提到过,当模块第一次被导入时候,模块代码将被执行。我们可以通过这一点,让模块在被导入独立运行时执行不同操作。...我们接下来将看到我们如何另一个 Python 程序中使用到这个模块。 需要记住是,这个模块位置有两种选择: 导入程序所处文件夹下; sys.path 所列出文件夹下。...程序包 现在你一定已经开始观察组织程序结构层次了。变量通常在函数内部。全局变量函数通常在模块内部。如何组织模块呢?这就是程序包出场时候了。

    84310

    Python3基础(八) 模块

    参考链接: 了解Python 3代码重用模块化 在程序定义函数可以实现代码重用。但当你代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护。...同时,你希望在一个文件代码能够被其他文件所重用,这时我们应该使用模块(module)。  一、导入模块  在Python,一个.py文件就构成一个模块。...一个模块定义可以导入(import)到另一个模块或主模块。 ...二、模块搜索路径  当导入名为 a 模块时, 解释器会先从内建模块尝试匹配,如果没找到,则将在 sys.path 记录所有目录搜索 a.py 文件,sys.path则包括:  当前程序所在目录标准库安装目录操作系统环境变量...注意:在每个包文件夹里都必须包含一个 __init__.py 文件,告诉Python,该文件夹是一个包。__init__.py 可以是一个空文件。

    41010

    python模块与包揭秘

    python,每一个文件就是一个模块,并且模块导入其它模块之后就可以使用导入模块定义变量名。 为什么引入模块呢?...math模块对象所有的属性 写过c语言程序的人都喜欢把pythonimport比作c#include,其实这是不太正确,因为import不只是把一个文件插入到另一个文件,导入时运行时运算,程序第一次导入指定文件是...模块文件搜索路径: 程序主目录 pythonpath目录(python环境变量) 标准链接库目录 任何.pth文件内容 pythonpath就是python得一个环境变量,安装了python朋友应该都配置了吧...reload函数主要是让我们程序变得更加动态: 只会在第一次导入时,加载执行该模块代码 之后得导入只会使用已加载得模块对象 reload函数会强制已加载得模块得代码重新载入并重新执行。...实际上python代码目录就称为包,因此导入目录就是导入包。事实上,包导入是把计算机上目录编程另一个python命名空间,属性则对应与目录中所包含子目录或模块文件。

    48210

    Python模块

    导入模块Python中使用import、from......import、reload导入或者重载模块,在导入模块时只能使用模块名,不是使用带.py后缀模块文件名。...当Python导入或者重载模块时,会立即执行模块文件顶层程序代码(不在函数或者类里面的代码),位于函数或者类里面的代码直到函数或者类被调用后才会执行。...3、执行模块代码来创建其所定义对象:模块文件所有语句从头至尾依次执行,此步骤任何对变量名赋值运算,都会产生所得到模块文件属性(模块只在第一次导入时才会执行如上步骤,后续导入操作只不过是提取内存已加载模块对象...我们有如下程序目录结构: 当我们在test.py文件调用mypackage包下模块(test.py与mypackage文件夹处于同一目录下),在Python3是可以直接调用。...但是我们在test文件夹文件夹mytest文件夹mynewtest.py文件调用该模块时会报错。

    79620

    11.python开源——工程项目结构

    导入模块 import module_name from package_name import module_name from package_name import * 那么如何import 时,...python 解释器如何才能找到该模块放置文件位置呢?...python 寻找模块优先级如下: 1、   当前文件目录 2、   环境变量PYTHONPATH 3、   sys.path(list 类型)         模块在被导入执行时,python解释器为加快程序启动速度...我们知道python是解释性脚本语言,.pyc是经过编译后字节码,这一工作会自动完成,而无需程序员手动执行。 包         将某些功能相近文件组织在同一文件夹下,就需要运用包概念。...这个特性,为测试驱动开发提供了支持,可以在每个模块写上测试代码,这些测试代码仅当模块Python直接执行时才会运行,代码测试完美的结合在一起。

    66810

    Python】快速复习指南-Quick Review

    class Child(Parent): # 定义子类 def myMethod(self): print '调用子类方法' 5.python模块模块 就是一个python文件 # 导入整体模块...import xxx # 导入模块某部分内容 from xxx imoprt yyy 包 模块是文件,那么包就是一个文件夹 包是使用“带点模块名称”来构造Python模块名称空间一种方法。...例如A.B,即指定子模块B,在A包。...包文件夹必需内容: __init__.py:使Python将包含文件目录文件夹视为包 __init__.py可以只是一个空文件,但是它也可以执行包初始化代码,或者设置__all__变量 6.python...搜索路径 当导入一个python模块Python 解析器对模块位置搜索顺序是: 当前目录 如果不在当前目录,Python 则搜索在环境变量 PYTHONPATH每个目录。

    31010

    Python各个模块介绍使用

    Python中有一个概念叫做模块(module),这个C语言中头文件以及Java包很类似,比如在Python要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下...5、定位模块 当你导入一个模块Python解析器对模块位置搜索顺序是: 1、当前目录 2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH每个目录。...变量里包含当前目录,PYTHONPATH由安装过程决定默认目录。 6、模块制作 1、定义自己模块Python,每个Python文件都可以作为一个模块模块名字就是文件名字。...至此,可发现test.py测试代码,应该是单独执行test.py文件时才应该执行,不应该是其他文件引用执行。 为了解决这个问题,python在执行一个文件时有个变量__name__ ?...2、模块中有__all__ ? 8、python包 1、引入包 有2个模块功能有些联系 ? 所以将其放到同一个文件夹下 ? 使用import文件.模块 方式导入 ?

    1.5K80

    Python模块介绍使用1.import2.from…import3.from … import *4.as5.定位模块6.模块制作7.模块__all__8.python包9.

    Python中有一个概念叫做模块(module),这个C语言中头文件以及Java包很类似,比如在Python要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下...5.定位模块 当你导入一个模块Python解析器对模块位置搜索顺序是: 1.当前目录 2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH每个目录。...变量里包含当前目录,PYTHONPATH由安装过程决定默认目录。 6.模块制作 1.定义自己模块Python,每个Python文件都可以作为一个模块模块名字就是文件名字。...至此,可发现test.py测试代码,应该是单独执行test.py文件时才应该执行,不应该是其他文件引用执行 为了解决这个问题,python在执行一个文件时有个变量__name__ ?...2.模块中有__all__ ? ? 8.python包 1.引入包 有2个模块功能有些联系 ? 所以将其放到同一个文件夹下 ? 使用import文件.模块 方式导入 ?

    99310

    Python入门之Python引用模块查找模块路径

    Python应用入口模块都是这样被执行(像C#Javamain函数),但是引用一个模块,就要建立运行它上下文环境。...但是这些路径下也是有目录层次Python如何查找子目录模块呢?特别是引用第三方包时,我们也需要知道一定层次关系。...按照Python约定,需要在animal文件夹创建名为__init__.py空文本文件,以标识animal文件夹是一个包。...默认情况下Python还是需要导入包内具体模块,但有个变通办法,就是使用包__init__.py文件,提前准备包内需要被引用各个模块变量,类似于向外部引用者暴露包内接口。...修改animal文件夹__init__.py文件如下,其中模块可以使用绝对路径相对路径,相对路径中一个句点.代表同级目录,两个句点..代表父目录。

    1.4K90

    解决python3关于import疑难杂症

    pythonimport与包管理 概念:模块与包 模块module:一般是以.py为后缀文件,也包括.pyo、.pyc、.pyd、.so.dll后缀文件,模块内定义了函数、类以及变量 包package...绝对导入相对导入 绝对导入相对导入概念只针对于包内模块导入包内模块,注意如果foo.pybar.py在同一个非包(没有__init__.py文件)目录下,那么它们之间可以互相import,不存在绝对导入相对导入问题...但是前者被称为隐式相对导入,后者被称为显式相对导入,方法三是绝对导入(会在sys.path路径搜索) 对于python3而言,方法二是相对导入,方法一方法三都是绝对导入,官方更推荐方法三 5....如果只是导入一个包import package不指名任何模块,且包__init__.py没有其他初始化操作,那么包下面的模块是无法被自动导入。 6....尽量不要使用相对引用 Python3不建议使用相对引用,最好遵循一定开发规范,不要在代码混用绝对引用与相对引用。

    1.7K30

    Python模块

    我们导入模块,就能获取它属性,从而使用模块提供功能。 import如何工作 import作用是在一个文件中导入模块。这看起来有点像C/C++语言中#include操作。...但是python导入C/C++#include是完全不一样。在python导入并非只是把一个文件文本插入另一个文件这么简单,导入实际是运行时操作。...只提取内存已加载模块对象。...顶层文件字节码是在内部使用后就丢弃导入文件字节码则保存在文件从而可以提高之后导入速度。 顶层文件通常是设计成直接执行,不是被导入。...导入模块意义就是为程序提供结构化设计,让程序将其逻辑分割成一些独立完备软件组件。一个模块程序代码另一个程序代码彼此隔离。模块最小化了程序内不同部分之间名称冲突。

    50100

    Python3学习笔记 | 二十二、Python模块模块宏伟蓝图

    我们要运行是main.py,通常part1.pypart2.py不会直接运行。 ? 3、标准库模块 之前页面看到“标准库模块”是Python自身提供,不需要程序员编写。...第一个第三个是自动定义。第二个与第四个就可以用于拓展路径,下面介绍4个目录使用方式。 1、主目录 程序主目录是第一个搜索导入文件路径。这一入口含义与你如何运行代码相关。...因为这个目录总是先被搜索,如果程序完全位于单一目录,所有导入都会自动工作,不需要配置路径。另一方面,由于这个目录是先搜索,其文件也将覆盖路径上其他目录具有同样名称模块。...2、PYTHONPATH目录 Python会对此环境变量(如果你设置了的话)从左至右搜索导入模块PYTHONPATH是设置包含Python程序文件目录列表,这些目录可以是用户定义,或平台特定目录名...你可以把想导入目录都加进来,Python会使用你设置来扩展模块搜索路径。 因为Python先会搜索主目录,当跨目录时候,这个设置才显得格外重要。

    71620

    Python 模块大全

    简单地说,模块就是一个保存了Python代码文件。模块能定义函数,类变量。模块里也能包含可执行代码。...---- From…import* 语句 把一个模块所有内容全都导入到当前命名空间也是可行,只需使用如下声明: from modname import * 这提供了一个简单方法来导入一个模块所有项目...PYTHONPATH变量 作为环境变量,PYTHONPATH由装在一个列表里许多目录组成。PYTHONPATH语法shell变量PATH一样。...返回列表容纳了在一个模块里定义所有模块,变量函数。...比如想重载hello模块,如下: reload(hello) 1 Python包 包是一个分层次文件目录结构,它定义了一个由模块及子包,子包下子包等组成Python应用环境。

    1.4K20

    Python入门(8)

    第八节 模块 大家好,上一节课,我们学习了python函数,我们由此知道Python编程不仅仅可以通过一些基本对象(如常量变量、运算符表达式)及流程控制语句,来编写代码实现一些简单应用,还能通过创建函数...当然,我们学会了把函数嵌入到一般程序流程,纵然可以解决一些相对复杂问题,甚至实现了简单代码重用。 但是,这与其他高级语言相比,还是远远不够。...并且,模块导入了其他模块之后,就可以直接使用被导入模块所定义变量函数。 所以,看起来又没什么新东西啊! PS:不错,在福尔摩斯说出谜底之后,华生从来都是不屑。...但是,如果我们自定义模块,我们就要特别注意,在导入模块时,python解释器将从sys.path变量所提供目录中进行搜索。如果找到了对应模块,则该模块语句将开始运行,并能为你所使用。...这意味着当前目录下模块,你可以直接导入。否则,你必须将你模块文件放置在sys.path所列出目录,你也可以通过修改PYTHONPATH 环境变量,来添加你模块文件所在目录路径。

    46030

    python模块学习(1)

    简单地说,模块就是一个保存了Python代码文件。模块能定义函数,类变量。模块里也能包含可执行代码。...From…import* 语句 把一个模块所有内容全都导入到当前命名空间也是可行,只需使用如下声明: from modname import * 这提供了一个简单方法来导入一个模块所有项目。...定位模块 当你导入一个模块Python解析器对模块位置搜索顺序是: 当前目录 如果不在当前目录,Python则搜索在shell变量PYTHONPATH每个目录。...如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/ 模块搜索路径存存储在system模块sys.path变量。...PYTHONPATH语法shell变量PATH一样。

    35220

    Python绝对导入相对导入

    Python import 搜索路径在当前目录下搜索该模块在环境变量 PYTHONPATH 中指定路径列表依次搜索在 Python 安装路径 lib 库搜索Python import 步骤python...所以,如果一个模块被直接运行,则它自己为顶层模块,不存在层次结构,所以找不到其他相对路径,所以如果直接运行python xx.py ,xx.py有相对导入就会报错看下面例子:package├── _...简单地说,直接运行 .py 文件 import 这个文件有很大区别。Python 解释器判断一个 py 文件属于哪个 package 时并不完全由该文件所在文件夹决定。...要运行包包含绝对导入相对导入模块,可以用 python -m A.B.C 告诉解释器模块层次结构。...这是因为这两个文件所在目录不是一个包,那么每一个 python 文件都是一个独立、可以直接被其他模块导入模块,就像你导入标准库一样,它们不存在相对导入绝对导入问题。

    4.2K21

    Python学习笔记 模块介绍

    模块 导入模块 Python官方教程让我们在Python解释器练习。但是当我们结束解释器,所有的代码都消失了。如果我们希望让代码永久保存的话,就需要将它们保存到文件。...不过这种方式,每次都需要添加模块点号。有没有什么方法可以向Java静态导入那样,直接使用函数不需要模块名呢?当然也是可行,不过这需要下面的导入方式。...python 文件名.py 默认情况下,当我们导入一个模块时候,它代码就会自动执行。如果我们需要将导入执行分隔开,不想在导入时候执行模块,就需要在模块添加类似下面的代码。...这里用到了另一个内置变量__name__。当前执行文件__name__值是__main__,导入文件__name__是模块名称。所以我们可以使用该变量来判断模块是被导入,还是被执行。...模块查找 模块查找路径如下: 包含当前输入文件文件夹(如果没有就是解释器的当前文件夹)。 PYTHONPATH 变量(系统环境变量PATH语法相同)、 Python安装文件夹

    66460
    领券