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

PYTHONPATH阻止从当前目录导入

PYTHONPATH是一个环境变量,用于指定Python解释器在导入模块时搜索模块的路径。当Python解释器在导入模块时,它会按照一定的顺序搜索模块的路径来找到对应的模块文件。

如果PYTHONPATH环境变量没有设置或者为空,Python解释器会按照默认规则搜索模块,即先搜索内置模块,然后搜索sys.path中的路径。

当PYTHONPATH环境变量设置为一个或多个路径时,Python解释器会优先搜索这些路径中的模块。这对于项目中需要使用自定义模块或第三方模块的情况非常有用。

PYTHONPATH可以通过以下方式来设置:

  • 在命令行中使用export命令(适用于Linux和Mac):export PYTHONPATH=/path/to/module
  • 在命令行中使用set命令(适用于Windows):set PYTHONPATH=/path/to/module
  • 在Python代码中使用os.environ来设置:import os; os.environ['PYTHONPATH'] = '/path/to/module'

设置好PYTHONPATH后,Python解释器就可以在指定的路径中搜索模块了。

注意:需要确保路径设置正确,路径之间使用冒号(Linux和Mac)或分号(Windows)分隔。

推荐的腾讯云相关产品:

  • 云服务器(ECS):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云函数(SCF):https://cloud.tencent.com/product/scf
  • 人工智能开发平台(AI开放平台):https://cloud.tencent.com/product/ai
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs

以上产品链接可了解更多有关腾讯云的信息和详细介绍。

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

相关·内容

python模块学习(1)

搜索路径是一个解释器会先进行搜索的所有目录的列表。 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。...From…import 语句 Python的from语句让你模块中导入一个指定的部分到当前命名空间中。...From…import* 语句 把一个模块的所有内容全都导入当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目。...定位模块 当你导入一个模块,Python解析器对模块位置的搜索顺序是: 当前目录 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。...变量里包含当前目录PYTHONPATH和由安装过程决定的默认目录 PYTHONPATH变量 作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。

35320
  • Python 模块

    搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块hello.py,需要把命令放在脚本的顶端: #!...这样可以防止导入模块被一遍又一遍地执行。 From…import 语句 Python的from语句让你模块中导入一个指定的部分到当前命名空间中。...From…import* 语句 把一个模块的所有内容全都导入当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目...定位模块 当你导入一个模块,Python解析器对模块位置的搜索顺序是: 当前目录 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录 。...变量里包含当前目录PYTHONPATH和由安装过程决定的默认目录PYTHONPATH变量 作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。

    84530

    Python 模块大全

    想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: import module1[, module2[,... moduleN] 当解释器遇到import语句,如果模块在当前的搜索路径就会被导入...这样可以防止导入模块被一遍又一遍地执行。 1 rom…import 语句 Python的from语句让你模块中导入一个指定的部分到当前命名空间中。...fibonacci 这个声明不会把整个fib模块导入当前的命名空间中,它只会将fib里的fibonacci单个 引入到执行这个声明的模块的全局符号表。...---- From…import* 语句 把一个模块的所有内容全都导入当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目...PYTHONPATH变量 作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。PYTHONPATH的语法和shell变量PATH的一样。

    1.4K20

    Python类、模块、包的区别

    from module import names 可以直接模块中导入名字到符号表,但模块名字不会被导入。...: 包含脚本当前的路径,当前路径 PYTHONPATH 默认安装路径 sys.path初始化完成之后可以更改 编译过的Python文件: .pyc文件 built-in 模块 上面的例子中,当...client被导入后,python解释器就在当前目录下寻找client.py的文件,然后再从环境变量PYTHONPATH寻找,如果这环境变量没有设定,也不要紧,解释器还会在安装预先设定的的一些目录寻找。...这就是在导入下面这些标准模块,一切美好事情能发生的原因。 这些搜索目录可在运行时动态改变,比如将module1.py不放在当前目录,而放在一个冷僻的角落里。...可以包中导入单独的模块。 1). import PackageA.SubPackageA.ModuleA,使用时必须用全路径名 2).

    1.2K20

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

    此处用的是绝对导入。 当我项目根目录的 main.py 主程序运行时,一切正常。可是,通常情况下,对于每个自己写的模块,我们都希望能够单独运行它,进行局部的模块测试,而无须依赖主程序。...这是因为 Python 脚本在运行时,会默认将脚本所在的当前目录加入 sys.path 中,以便于在其中查找你要导入的模块,而当我用 python spider/realtime/overview.py... 以脚本的方式运行模块时,此时 overview.py 所在的当前目录为 xxx/spider/realtime,于是 Python 解释器就会在 realtime 目录及其子目录下,去查找要导入的模块...–spider –|–config.py –|–realtime —-|–overview.py 以当前模块所在的包 realtime 为基准, .. 上级目录 导入 config 模块。...设置 PYTHONPATH 环境变量 【推荐】 在 Python 中,其实我们还可以通过设置 PYTHONPATH 环境变量的方式,来指定追加的类库搜索目录,底层原理等同于使用 sys.path.append

    1.6K41

    ​Python模块知识全解析

    导入的原理就是,在指定范围内搜索对应的python文件或者包,将其执行,获取其中的方法。...在Python中用关键字import来引入某个模块,常用的导入方式有以下几种。 ? 导入模块的搜索顺序 搜索当前目录。...不在当前目录,Python搜索在shell变量PYTHONPATH下的每个目录(模块搜索路径存储在system模块的sys.path变量中。...变量里包含当前目录PYTHONPATH和由安装过程决定的默认目录)。 都找不到,Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。...一般的导入规则如下: 在同一包内: import 模块名 函数的调用:模块名.函数() 不同包内: import 包1.包2.模块名 函数的调用:包1.包2.模块名.函数() Python常用的几个模块如下

    45842

    python模块导入细节

    注意程序所在目录当前目录是不同的。...例如,在/tmp/目录下执行/pycode中的a.py文件 cd /tmp python /pycode/a.py 其中/tmp为当前目录,而/pycode是程序文件a.py所在的目录。...环境变量PYTHONPATH 这个变量中可以自定义一系列的模块搜索路径列表,这样可以跨目录搜索(另一种方式是设置.pth文件)。但默认情况下这个环境变量是未设置的。...以下是临时设置当前命令行窗口的PYTHONPATH: set PYTHONPATH='D:\pypath; d:\pypath1' 在unix下,设置PYTHONPATH环境变量的方式,使用冒号分隔多个路径...例如,在a.py中导入b: import b print(b.x) 这个过程唯一和当前文件a.py作用域有关的就是模块对象变量b,b.py中声明的属性和当前文件无任何关系。

    1.9K40

    Python模块

    5+6=11 模块调用 在介绍Python的跨目录调用之前先介绍一下import的工作机制,import语句导入指定的模块时会执行3个步骤: 1、找到模块文件,在模块搜索路径下搜索模块文件,查找顺序为...当前路径 PythonPATH目录   标准链接库目录 2、编译成字节码:文件导入时会编译,因此,顶层文件的.pyc字节码文 件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc文件。...当我们将一组模块归并到一个目录中,这个目录即为包,目录名即为包名。...修改代码如下: #将mypackage包的上一级目录test目录添加到PythonPATH里面来 import sys import os sys.path.append("..")...当然我们也可以直接添加mypackage到PythonPath里面来,再直接调用mypackage里的模块: #将mypackage添加到PythonPATH import sys import os

    79920

    Python模块和包

    程序的主目录目录就是包含程序的顶层脚本文件的目录。当在交互式命令行下工作时,主目录就是你当前工作的目录。...PYTHONPATH目录(如果设置了的话) 之后,Python会搜索PYTHONPATH(前提是存在这个环境变量)环境变量中罗列出的所有目录。...因为Python会优先搜索主目录,所以当你有跨目录的文件时,PYTHONPATH就显得很重要。 标准库目录 接着,Python会自动搜索标准库目录。...任何.pth文件中的内容(如果存在的话) 之后,python允许用户把需要的目录添加到模块搜索路径(即.pth文件)中去。这实际上提供了一种替代PYTHONPATH的方案。...导入钩子和ZIP文件 实际上,你可以重新定义import操作的行为,使用导入钩子(import hook)。导入钩子能够让你压缩文件中加载文件,执行解密等操作。意味着你可以导入任何类型的文件。

    50200

    python模块与包揭秘

    模块文件的搜索路径: 程序主目录 pythonpath目录(python的环境变量) 标准链接库目录 任何.pth文件的内容 pythonpath就是python得一个环境变量,安装了python的朋友应该都配置了的吧...这里写图片描述 通过结果可以看到,我们成功导入了mask.py,而且是通过我们之前没有接触过的方式,其实from dir0.dir1.dir2 import mask的意思就是from后面的目录导入...中默认先搜索当前目录,然后再去pythonpath里寻找,所以当程序执行到import string时,先找到了我自己写的string.py。...前面我们说的就是绝对导入,直接给出一个绝对的路径(其实也是相对路径,看你怎么理解),现在我们不想那么写,就给出一个相对于当前目录的包路径,这样做就就更加明确了模块位置 from . import reverse...#相对于当前目录导入reverse from .. import test #相对于上级目录导入test from ..hello import x #上级目录的hello 模块下导入x 其它 前面提到了通过自定义

    48310

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

    在Python里,模块搜索的路径如下: 1、程序的主目录 2、PYTHONPATH目录(如果进行了设置) 3、标准链接库目录 4、任何.pth文件的内容(如果存在的话) 这四个组件合起来就成了sys.path...当你运行程序的时候,这个入口是包含程序的顶层脚本文件的目录。当在交互模式工作时,这个入口就是你当前工作的目录。...2、PYTHONPATH目录 Python会对此环境变量(如果你设置了的话)左至右搜索导入的模块,PYTHONPATH是设置包含Python程序文件的目录的列表,这些目录可以是用户定义的,或平台特定的目录名...文件的格式是每一行一个目录,Python会把重复的目录和不存在的目录过滤掉。 五、配置搜索路径 我们可以手动设置的就是PYTHONPATH与.pth文件。...PYTHONPATH设置方式,跟其他环境变量设置方式相同,每个路径之间使用分号隔开(;),.pth设置方式就是之前所说的那些目录里创建文件。

    71820

    浅析Python模块的引入和调用

    如果想一次性引入math中所有的东西,还可以通过from math import 来实现 2. from…import Python的from语句让你模块中导入一个指定的部分到当前命名空间中。...import fibonacci 注意: 不会把整个fib模块导入当前的命名空间中,它只会将fib里的fibonacci单个引入。...3. from … import * 把一个模块的所有内容全都导入当前的命名空间也是可行的,只需使用如下声明: from modname import * 注意: 这提供了一个简单的方法来导入一个模块中的所有项目...定位模块 当你导入一个模块,Python解析器对模块位置的搜索顺序是: 当前目录 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。...变量里包含当前目录PYTHONPATH和由安装过程决定的默认目录。 三、as 的三种用法 1. with...as...

    84430

    python 路径管理以及常见报错

    路径管理 路径 绝对路径 总是目录开始 H:\PyCharmProjects\tutorials_2\jd_crawler\main.py 相对路径 jd_crawler\main.py .和......代表当前目录, ..代表父目录 工作目录 当前执行命令所在的目录 # 将工作目录添加进当前的路径列表 sys.path.append(os.getcwd()) 路径列表 查看当前路径列表 只有在路径列表当中的包和模块才可以导入和调用...import sys print(sys.path) 路径搜索顺序 当前脚本路径, 也就是执行文件的目录 PYTHONPATH路径 虚拟环境路径 site-packages 安装的第三方库所在路径...tutorials_2") 常见报错 ModuleNotFoundError: No module named 'xxxx' 为什么在pycharm中不报错, 在命令行当中报错 Pycharm会自动将当前项目的根目录添加到路径列表当中...ModuleNotFoundError: No module named 'parser.search'; 'parser' is not a pac kage` 自定义包和内置包名有冲突 修改包名即可 导入的不是一个包

    1.3K20

    Python3基础(八) 模块

    当我们将一个模块导入当前模块时,只有被导入模块的名称被放入当前模块的全局符号表里,所以我们不用担心变量名发生冲突。 ...import time as x    s = x.ctime() print(s)  2、from a import func:直接把模块内的函数或变量的名称导入当前模块符号表里。 ...二、模块搜索路径  当导入名为 a 的模块时, 解释器会先从内建模块尝试匹配,如果没找到,则将在 sys.path 记录的所有目录中搜索 a.py 文件,而sys.path则包括:  当前程序所在目录标准库的安装目录操作系统环境变量...PYTHONPATH所包含的目录  变量 sys.path 是一个字符串列表,它为解释器指定了模块的搜索路径。...它通过环境变量 PATHONPATH 初始化为一个默认路径,当没有设置 PYTHONPATH 时, 就使用内建默认值来初始化。

    41310

    python之基础篇(十)——执行环境与

    python解释器启动: python [options] [-c cmd | filename | - ] [args] 选项 描述 -3 启用将从python3中删除或更改某些功能的警告 -B 阻止导入时创建...优化模式 -OO 优化模式,在创建.pyo文件时删除文档字符串 -Q arg 指定python2中除法运算符的行为,值为-Qold(默认值)、-Qnew、-Qwarn或-Qwarnall之一 -s 阻止将用户站点目录添加到...跟踪导入语句 -V 打印版本号并退出 -x 跳过源程序的第一行 -c cmd 以字符串形式执行cmd   python解释器环境变量: 环境变量 描述 PYTHONPATH 以冒号分隔的模块搜索路径...相当于-B选项 PYTHONOPTIMIZE 相当于-O选项 PYTHONNOUSERSITE 相当于-s选项 PYTHONVERBOSE 相当于-v选项 PYTHONUSERBASE 每个用户站点包的根目录...PYTHONCASEOK 指示为导入所使用的模块名称使用不区分大小写的匹配方式 python代码的测试、调试与探查 基于文档字符串来进行测试。

    71010
    领券