【问题标题】:Cannot import file from same directory无法从同一目录导入文件
【发布时间】:2021-06-23 23:07:57
【问题描述】:

尝试将文件 (meleeWeapons.py) 导入我的主文件 (main.py) 但它似乎不起作用。

文件目录如下

Domination
  |_main.py
  |_meleeWeapons.py
  |_test.py

当我将 from Domination import meleeWeaponsfrom . import meleeWeapons 加载到 main.py 中时,尝试将任何来自 meleeWeapons 的对象加载到 main 中不起作用,标记 "myObject" is not defined。当我执行from Domination import meleeWeapons 方法时,错误“无法解决导入“Dominations””

【问题讨论】:

  • 如果您在main.py 中使用它,那么简单的import meleeWeapons 是否有效?
  • @sammy 不,它没有
  • 请提供预期的minimal, reproducible example (MRE)。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。当我在自己的结构中使用import <local file> 时,它按预期工作。

标签: python python-3.x import


【解决方案1】:

当你从本地模块导入东西时,你把模块名放在first,然后是符号(“对象”)second

from meleeWeapons import Domination

如果您想将所有内容导入全局命名空间(您很少,如果有的话,想要这样做),那么这样做:

from meleeWeapons import *

如果您想导入模块本身,并使用meleeWeapons.Dominion 访问Dominion(或任何其他符号),则只需执行标准导入:

import meleeWeapons

你也可以给模块一个别名:

import meleeWeapons as mW

【讨论】:

  • 这不起作用,但导入不会标记错误。尽管如此,没有对象从meleeWeapons.py 导入到main.py
  • no objects are getting imported from ... 是什么意思?您是否尝试过使用从meleeWeapons.py 导出的变量?
  • from meleeWeapons import * 工作。谢谢!
【解决方案2】:

您使用了错误的语法。你需要

import meleeWeapons

您所做的是告诉 Python 查看 Domination.py 文件,并返回符号 meleeWeapons。

【讨论】:

  • 这不起作用,但导入不会标记错误。尽管如此,没有对象从meleeWeapons.py 导入到main.py
  • @goose.mp4 必须使用meleeWeapons.OBJECT访问对象(函数、变量、类等)
猜你喜欢
  • 2018-03-11
  • 2021-02-02
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
相关资源
最近更新 更多