【问题标题】:How to simply import a file如何简单地导入文件
【发布时间】:2019-06-28 09:08:16
【问题描述】:

这似乎是一个简单的问题,所以我认为它已经得到了回答,但是我在互联网上找到的解释中没有一个包含对我有效的解决方案。

所以,我只想能够从与我要使用它们的文件位于同一文件夹中的文件中导入函数。到处都写着我只需要写import my_file,但我只得到ImportError: No module named my_file

我尝试在文件夹中添加一个空的__init__.py 文件,但没有成功。我没有尝试其他太复杂的解决方案,因为应该有一个简单的解决方案,我觉得我只是缺少一些基本但必不可少的东西。

所以,我做了一个尽可能简单的测试,只使用一个文件夹 Folder,其中包含两个文件,file1.pyfile2.py。 这里是file1.py的内容:

import file2
f()

这里是file2.py的内容:

def f():
    print "it works !"

当我执行file1.py 时,我在第 1 行收到以下错误: ImportError: No module named file2

(我尝试了所有可能的组合是否存在引号、括号和 .py 扩展名,其中大多数我得到了SyntaxError: invalid syntax

【问题讨论】:

  • 在 python 路径中是Folder 吗?你可以在导入之前执行以下操作吗:import sys; print sys.path
  • 准确显示执行 file1 的操作。
  • stackoverflow.com/questions/2349991/… 请阅读这篇文章,它会帮助你
  • 你执行文件夹中的脚本吗?或者其他路径
  • 您应该将Folder 添加到您的python 路径:import sys; sys.path.append('<Path to Folder>')

标签: python python-2.7 python-import


【解决方案1】:

你应该在 file1.py 中写如下:

from file2 import f
f()

【讨论】:

  • 我得到同样的错误ImportError: No module named file2
  • 你确定file1.py和file2.py在同一个目录吗?
  • file1.py 和 file2.py 在同一个目录下没有意义。建议你考虑清理缓存或者重新安装python
  • 是的,它们在同一个目录中。在询问从哪里执行代码后,我尝试使用另一个 IDE,它工作正常,所以我猜这是工作目录的问题。
【解决方案2】:

你做错了下面是你将得到你想要的结果的代码:-

文件1

import file2
file2.f()   # You have to use like this.

文件2

def f():
    print "it works !"

希望对你有帮助。

【讨论】:

  • 我仍然收到同样的错误ImportError: No module named file2。无法访问file2进行导入,所以我调用函数的方式不是问题
  • @Seldi 它在我的笔记本电脑上工作正常。如果您使用了上面给出的代码,那么它应该可以工作。
  • @Seldi 还要确保 file1 和 file2 都带有 .py 扩展名
  • 我做到了,但问题似乎来自 IDE
  • @Seldi 在记事本的帮助下使用这些名称制作 2 个文件,并带有 .py 扩展名,如 file1.pyfile2.py,然后只需通过 python file1.py 将它们运行到您的 powershell 中,如果它正在工作,那么你会得到你的结果。如果它在这里工作,那么它可以在任何 IDE 中工作。
【解决方案3】:

请使用这个,对我来说很好用。

文件1

from  file2 import f

#You will get object code. it means working fine.

print (f)

【讨论】:

  • 我仍然收到同样的错误ImportError: No module named file2
  • 更新你的python,或者重新安装你的python版本。
【解决方案4】:

我尝试使用另一个 IDE(Spyder 而不是 Pyzo)。它询问从哪里执行代码,我点击“从文件的位置”,它工作了。

我猜问题是关于代码是从哪里执行的......

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 2012-02-03
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    相关资源
    最近更新 更多