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

Python不允许我从同一目录导入.py文件

在Python中,当我们想要从同一目录导入.py文件时,可能会遇到一些限制。这是因为Python解释器在搜索模块时,会按照一定的规则进行搜索路径的查找,而当前目录(即运行脚本的目录)并不在默认的搜索路径中。

为了解决这个问题,我们可以采取以下几种方法:

  1. 使用绝对路径导入:可以通过指定文件的绝对路径来导入.py文件。例如,如果要导入同一目录下的文件"example.py",可以使用以下语句进行导入:
代码语言:txt
复制
import sys
sys.path.append('/path/to/directory')  # 将目录添加到搜索路径中
import example
  1. 使用相对路径导入:可以使用相对于当前脚本文件的路径来导入.py文件。例如,如果要导入同一目录下的文件"example.py",可以使用以下语句进行导入:
代码语言:txt
复制
from . import example

需要注意的是,使用相对路径导入需要确保当前脚本文件是作为一个模块被导入的,而不是直接作为主程序运行的。

  1. 将当前目录添加到模块搜索路径中:可以通过修改sys.path来将当前目录添加到模块搜索路径中,从而实现导入.py文件的目的。例如:
代码语言:txt
复制
import sys
sys.path.append('.')  # 将当前目录添加到搜索路径中
import example

这种方法需要在导入之前手动将当前目录添加到搜索路径中,可能会导致一些潜在的问题,因此需要谨慎使用。

总结起来,要从同一目录导入.py文件,可以使用绝对路径导入、相对路径导入或将当前目录添加到模块搜索路径中。具体选择哪种方法取决于具体的使用场景和需求。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mps
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python菜鸟到高手(4):导入Py

Python代码中导入模块需要使用import语句,语法结构如下: import module_name   引用模块中函数的语法如下: module_name.function_name   如果在...Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上“模块名”显得有些麻烦,所以在这种情况下,可以使用from…import…语句将模块中的函数直接暴露出来。...from module_name import *   另外,import和from…import…语句可以写在Python代码中的任何位置,但一定要在引用相应模块函数之前执行import或from…import...print("import和from...import...演示") # 导入math模块 import math print(math.floor(20.6)) # 导入math模块中的sqrt函数...from math import sqrt print(sqrt(12)) # 导入math模块中的所有函数 from math import * print(sin(3.14/2)) 程序运行结果如下图所示

59410

py2exe打包多个py文件_Python导入

大家好,又见面了,是你们的朋友全栈君。...否则可能会出现以下异常: 上面的命令执行后将产生一个名为 dist 的子目录,其中包含了 helloworld.exe、python24.dll、library.zip 等等文件: dist 子目录中的文件包含了程序所必须的东西...指定额外的文件 一些应用程序在运行时需要额外的文件,诸如配置文件、字体、图标。py2exe 并不会自动把他们打包到 dist 目录,不过可以通过配置参数来打包。...可以在安装脚本中用 data_files 可选项指定了那些额外的文件,那么 py2exe 能将这些文件拷贝到 dist 子目录中。...,请切换到 python3.4 尝试; 3、python3 如果是 64 位,生成的 exe 只能在 64 位操作系统下运行,使用 32 位 python 可以解决; 4、 Python 3.3,Windows

1.1K30

python 学习笔记(8)——python绝对路径相对路径

Python中以绝对路径或者相对路径导入文件的方法 1、在Python中以相对路径或者绝对路径来导入文件或者模块的方法    今天在调试代码的时候,程序一直提示没有该模块,一直很纳闷,因为导入文件一直是用绝对路径进行导入的...  绝对路径就是文件的真正存在的路径,是指硬盘的根目录(盘符)开始,进行一级级目录指向文件。   ...py 即:要导入文件的当前目录和父目录都要有init.py文件 ----   Python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。...下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: – src   |– mod1.py   |– test1.py   若在程序test1.py导入模块mod1,...总结:   通过总结可以发现,当你要导入文件在和你的当前文件同一目录时,你直接导入这个文件名就好了。

5.3K40

Python基础:创建并使用自定义模块

1.与访问模块的Python文件位于同一目录中。 2.在另一个目录中,该目录必须添加到Python解释器的路径中。 3.在Python解释器的任意默认路径内。...导入同一目录中的自定义模块 在你创建的newmodule.py文件相同的目录中创建另一个名为mainfile.py文件。 要导入自定义模块,可以使用import语句后跟模块名称。...此语法类似于导入默认或已安装的Python模块。下面的脚本导入newmodule模块,该模块由与mainfile.py文件存储在同一目录中的newmodule.py文件创建。...) 其他不同路径中导入自定义模块 还可以将自定义模块保存在导入它的文件所在目录以外的目录中。...在的计算机上是“D:\sample”。 现在,如果要在Python应用程序中导入newmodule2模块,则必须将该模块的路径附加到Python解释器可访问的路径列表中。

1.1K40

python中import星_Python imports 指北

可是如果另外一个文件中引用它会怎么样呢?...这非常简单 - 模块是一个包含Python代码的文件,可以使用解释器(python程序)执行或其他模块导入。...所以导入时,即使使用import module as othername将模块名称重命名,模块名称仍然设置为不带.py扩展名的文件名 但是如果导入的模块不在同一目录下,我们怎么导入呢?...要创建一个包,创建一个包含__init__.py文件目录 请记住,程序包是模块的名称空间,因此您不会导入包本身,而是包中导入模块。...自Python 3开始,所有导入都默认为绝对导入 - 它将首先查找系统包 但是如果你的软件包有一个名为sys的模块,并且你想把它导入同一个包内的另一个模块中,你必须做相对的导入

1.1K00

Python中import机制

大家好,又见面了,是你们的朋友全栈君。 Python语言中import的使用很简单,直接使用import module_name语句导入即可。这里主要写一下”import”的本质。...it. 1.定义: 模块(module):用来逻辑(实现一个功能)上组织Python代码(变量、函数、类),本质就是*.py文件。...包(package):定义了一个由模块和子包组成的Python应用程序执行环境,本质就是一个有层次的文件目录结构(必须带有一个__init__.py文件)。...module_test04.py This is module_name.py Hello fun a Hello fun b 多个函数需要重复调用同一个模块的同一个方法,每次调用需要重复查找模块。...Python中的模块文件在”安装路径\Python\Python35\Lib”目录下。 第三方模块 通过”pip install “命令安装的模块,以及自己在网站上下载的模块。

24020

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

的项目结构 首先,并不是一个经验丰富的 Python 开发者,一般像我这样水平的,要么用框架,以其预置的代码结构来管理代码文件和逻辑;要么,就是调包侠,将代码写在同一个或多个 .py 文件中,不用文件目录组织...下面是完整的目录结构: 希望搭建的这个目录结构,能够按照预想的正常工作。然而,由于 Python 导包机制一套组合拳,让一度陷入了迷茫。...请关注这里,realtime 和 live 两个目录,也就是 package 包,下面都含有 overview.py 模块文件,如果导入模块的时候,用下面这种方式,是会名称冲突的: from spider.realtime...后面如法炮制,live 目录下,也有两个模块文件:livelist.py 和 overview.py,同样需要在 __init__.py 文件中加入导入模块的代码: from . import livelist...–spider –|–config.py –|–realtime —-|–overview.py 以当前模块所在的包 realtime 为基准, .. 上级目录 导入 config 模块。

1.5K41

Python中如何随心所欲使用自定义模块

1.与访问模块的Python文件位于同一目录中 2.在另一个目录中,该目录必须添加到Python解释器的路径中 3.在Python解释器的默认路径内。...导入相同目录里的自定义模块 创建另一个名为mainfile.py文件,位于与刚创建的newmodulepy文件同一目录中。mainfile.py文件将在本文中用于测试自定义模块的功能。...下面的脚本导入由存储在与mainfilepy文件相同的目录中newmodule.py创建的newmodule模块。注意,要导入模块,只需指定模块名称,而不必指定“.py”扩展名。...16) print(sqrt16) 默认Python路径添加和导入自定义模块 最后,可以将自定义模块导入Python应用程序,方法是将该模块保存在Python解释器尝试导入Python模块时搜索的默认路径之一...在的输出中,这个目录是“C:\Users\excelperfect\AppData\Local\Programs\Python\Python39\lib\site-packages”。

2.1K10

解决python3中关于import的疑难杂症

from somemodule import firstfunc, secondfunc, thirdfunc # 模块中导入多个函数 from somemodule import * # 模块中导入所有函数...绝对导入与相对导入 绝对导入和相对导入的概念只针对于包内模块导入包内模块,注意如果foo.py和bar.py同一个非包(没有__init__.py文件)的目录下,那么它们之间可以互相import,不存在绝对导入和相对导入的问题...项目demo 假设当前你的工程文件目录如下(仅针对python3): 注意这里文件夹下并没有__init__.py,严格来讲它们并不是包,只是将联系紧密的模块放在同一文件夹下方便工程项目管理。...│ └── module_3.py └── main.py # 注意 # 1) 所有模块都以src为根目录, 包括main.py(当然这只是个人习惯) # 2) 引入方式都是绝对引入(python3...,我们可以通过sys.path.append(..)将它的上层目录也加入sys.path,修改后的module_3.py文件内容为: """module_3.py 本质上就是将module_3.py的上级目录加入到

1.6K30

Python imports指南

可是如果另外一个文件中引用它会怎么样呢?...这非常简单 - 模块是一个包含Python代码的文件,可以使用解释器(python程序)执行或其他模块导入。...所以 导入时,即使使用import module as othername将模块名称重命名,模块名称仍然设置为不带.py扩展名的文件名 但是如果导入的模块不在同一目录下,我们怎么导入呢?...要创建一个包,创建一个包含__init__.py文件目录 请记住,程序包是模块的名称空间,因此您不会导入包本身,而是包中导入模块。...自Python 3开始,所有导入都默认为绝对导入 - 它将首先查找系统包 但是如果你的软件包有一个名为sys的模块,并且你想把它导入同一个包内的另一个模块中,你必须做相对的导入

96850

一些杂想

使用python manage.py startapp 创建 app。 创建 templates 文件夹,并把所有网页模板(.html)文件都放在此文件夹中。...要在网站中建立自定义标签,就要在网站 App 目录下创建一个 templates 文件夹,然后把要创建这些自定义标签的函数放在这个文件夹想,自己命名一个文件,同时为了要让这个文件夹可以被 Python...视为一个可导入的模块,在同一文件夹下还要创建一个 __init__.py 文件。...通过 python manage.py shell 进入 Python shell 。 在Python 3中,数字上不允许使用前导零, 数字前面写0将表示8进制。...当然,如果不小心把所有内容都改乱了,那么把这个文件夹中除了__init__.py 文件外的所有文件都删除,并删除上一层目录中的 db.sqlite3 数据库文件,等于是所有数据库内容全部重置,重新来过了

1.4K30

#14 Python模块

其实模块就是一个Python文件,一个.py结尾的Python文件。听到这里,萌新肯定蒙圈了,那岂不是写的每一个Python文件都是模块了?没错!...:从盘符开始的路径,比如C文件在E盘中的A文件夹下的B文件夹中,那么C文件的绝对路径为:E:\A\B\C 相对路径:当前目录开始的路径,比如我现在在B文件夹中,那么C文件的相对路径为:....\C ,在相对路径的表示中,.代表当前目录,..代表上级目录 绝对路径导入: In [10]: from E:/A/B/C import a # Python中使用/作为路径分隔符 上面这段代码的解释...print('是小绵羊') 6 7 8 def english(): 9 print('I am MinuteSheep') 1 # run.py 2 # run.py与speak.py...在同一目录下 3 4 import speak 5 6 speak.english() 7 speak.chinese() 1 # 运行结果 2 3 I am MinuteSheep 4 是小绵羊

40820

4.模块与包

所以将这些相同的功能封装到一个文件中,谁用谁拿。 怎么拿?模块就是文件,存放一堆函数,谁用谁拿。 比如:要策马奔腾共享人世繁华,应该怎么样?应该骑马,你也要去浪,你是不是也要骑马。...3.在速度上.pyc文件中读指令来执行不会比.py文件中读指令执行更快,只有在模块被加载时,.pyc文件才是更快的 4.只有使用import语句是才将文件自动编译为.pyc文件,在命令行或标准输入中指定运行脚本则不会生成这类文件...而环境变量都是以执行文件为准的 比如我们想在glance/api/versions.py导入glance/api/policy.py,有的同学一抽这俩模块是在同一目录下,十分开心的就去做了,它直接这么做...,于是在导入policy时能在当前目录下找到 但是你想啊,你子包中的模块version.py极有可能是被一个glance包同一级别的其他文件导入,比如我们在于glance同级下的一个test.py文件导入...'policy' 6 ''' 7 8 ''' 9 分析: 10 此时我们导入versions在versions.py中执行 11 import policy需要找sys.path也就是当前目录

77820
领券