如何导入Python文件?

2024-05-10

抱歉,这绝对是重复的,但我找不到答案。我正在使用 Python 3,这是我的应用程序的结构:

/home
  common.py
  australia/
    new-south-wales/
      fetch.py

我在home/目录,运行fetch.py。我如何导入函数common.py在那个脚本中?

我已经设置了fetch.py如下:

from common import writeFile

但我收到以下错误:

File "australia/new-south-wales/fetch.py", line 8, in <module>
    from common import writeFile
ModuleNotFoundError: No module named 'common'

如果我只是这样做python -c "from common import writeFile"我没有看到错误。

翻译不应该吗在当前目录中查找模块 https://docs.python.org/3/tutorial/modules.html#the-module-search-path?


在导入之前,需要导入的目录必须有文件__init__.py在那个文件夹中

#解决方案1(运行时导入)

要在“运行时”导入已知名称的特定 Python 文件:

import os
import sys
script_dir = "/path/to/your/code/directory"

# Add the absolute directory  path containing your
# module to the Python path

sys.path.append(os.path.abspath(script_dir))

import filename

#解决方案2(将文件添加到 python 库之一)

另外,因为您有一个可以运行的公共库

>>> import sys
>>> print sys.path

并查看您可以在每个项目中放置和使用代码的目录。您可以将公共包移动到此目录之一,并将其​​视为普通包。例如,对于 common.py,如果您将其放在一个项目的根目录中这个目录的你可以像这样导入import common

#解决方案3(使用相对导入)

# from two parent above current directory import common
# every dot for one parent directory
from ... import common 

然后转到父目录并运行

python -m home.australia.new-south-wales.fetch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何导入Python文件? 的相关文章

随机推荐