首页 > 编程问答 >将普通 python 文件导入另一个文件时出现 AttributeError

将普通 python 文件导入另一个文件时出现 AttributeError

时间:2024-08-07 14:54:28浏览次数:13  
标签:python

我是新手。我正在尝试将简单的 python 文件导入到我的主文件中。相同的代码在我的 mac 上工作,但在我的电脑上不起作用。我不断收到此错误消息。 “AttributeError:模块‘logo’没有属性‘hammer_logo’”

第一个文件 拍卖.py 代码

import logo
print(logo.hammer_logo)

第二个文件 代码

hammer_logo = "HAMMER"

我使用 Visual Studio 代码,我知道这不是代码错误,因为我在我的 Mac 上测试并且它可以工作。这是 Visual Studio 错误还是电脑错误? 请帮助我,我想继续编写代码,但这确实给我带来了困难。

我观看了 yt 视频,但找不到任何解决方案。所以我厌倦了 stackover flow 因为 chatgpt 推荐我。这是我第一次使用这个网站。


你遇到的问题与 Visual Studio Code 或你的电脑无关,而是与你如何处理 Python 模块有关。当你运行代码时,Python 会感到困惑,因为它在你的项目中找到了两个名为“logo”的东西:一个是你创建的 logo.py 文件,另一个是它试图从你的主拍卖文件中导入的“logo”。

以下是修复方法以及它是如何工作的:

理解问题

当导入模块时,Python 寻找名为 logo.py 的文件(在你的情况下)。找到此文件后,它会运行 整个文件 。包括 print(logo.hammer_logo) 行,该行在该时间点失败,因为 hammer_logo 尚未在 logo.py 本身中定义。

解决方案

你需要做的是将 hammer_logo 变量的定义从你的主拍卖文件 移动 logo.py 文件。

修改后的代码

以下是你的代码应如何显示:

logo.py

hammer_logo = "HAMMER" 

拍卖.py

import logo
print(logo.hammer_logo)

解释

通过这种方式,当你 import logo 时, logo.py 文件会运行,定义 hammer_logo ,然后你就可以毫无问题地访问它。

额外提示

为了更好地组织你的项目,你可以考虑创建一个名为 __init__.py 的空文件,该文件与你的 auction.py logo.py 文件位于同一目录中。这将帮助 Python 将该目录识别为一个包,从而更轻松地管理你的代码。

请告诉我这是否解决了你的问题,如果你需要更多帮助,请告诉我!

标签:python
From: 78842207

相关文章

  • 使用python读取mysql数据,并记录到本地的文件中
    上次写过一次读取sqlserver数据,写入本地文件。今天分享一下mysql的。原理相似,希望对大家有小小的帮忙PS,我是3.6.13版本python,上一版本用包mysql-connector,一直不成功,查询官方文档,发现这个版本的PYTHON简直是奇葩的存在了。基本所有版本都支持,就是几个小版本排除在外了。......
  • python合并音视频-通过moviepy模块合并音视频
    ......
  • esp32安装circuitpython
    安装Thonnyhttps://thonny.org/在Thonny中安装circuitpython在配置解释器中选择circuitython然后点击右下角“安装或更新...“variant这里我选择了DOITesp32DevelopmentBoard(试过其他的一些个,不知道为什么安装完之后会无限重启,所以最后选择了这个)烧录完之后,重新连接,Th......
  • 利用Python进行金融数据分析的全面指南【文末送书】
    文章目录Python金融数据分析技术文章Python金融数据分析【文末送书】Python金融数据分析技术文章金融数据分析在现代金融行业中扮演着至关重要的角色。通过使用Python编程语言,我们可以对大量金融数据进行处理、分析和可视化,从而获得有价值的洞察。本篇文章将介绍如何......
  • python和sliver交互
    开源第三方库:https://sliverpy.readthedocs.io/en/latest/getting-started.html#connect-example代码示例:importosimportasynciofromsliverimportSliverClientConfig,SliverClientCONFIG_PATH=os.path.join('../sliver/','moloch_127.0.0.1.cfg')......
  • 不写代码,这样使用Python seaborn、matplotlib
    今天分享一个PyQt5GUI工具,动动鼠标拖拽就使用Python的Matplotlib、Seaborn进行绘图,并导出高清PDF。sviewgui安装pip install sviewguisviewgui使用使用很简单,因为,他只有一个方法啊:buildGUI();下面以tips.csv数据和boxplot为例介绍sviewgui的使用。以下三种方法均可......
  • 零基础学习人工智能—Python—Pytorch学习(一)
    前言其实学习人工智能不难,就跟学习软件开发一样,只是会的人相对少,而一些会的人写文章,做视频又不好好讲。比如,上来就跟你说要学习张量,或者告诉你张量是向量的多维度等等模式的讲解;目的都是让别人知道他会这个技术,但又不想让你学。对于学习,多年的学习经验,和无数次的回顾学习过程,都......
  • 【Python】网络编程
    计算机网络的介绍计算机的发展经历了以下几个阶段:阶段时间物理器件第一阶段1946年到20世纪50年代后期电子管第二阶段20世纪50年代后期到20世纪60年代中期晶体管第三阶段20世纪60年代中期到20世纪70年代初期中小规模集成电路第四阶段20世纪70年代初期至今大规模集成电路1.通......
  • 猫头虎分享 Python 知识点:pandas--info()函数用法
    ......
  • 计算机毕业设计必看必学!! 87229 基于ssm珠宝店信息管理系统,原创定制程序, java、PHP
    摘要近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用。简单的流程、便捷可靠的支付方式、快捷畅通的物流快递、安全的信息保护都使得电子商务越来越赢得网民们的青睐。现今,大量的计算机技术应用于商业领域,......