如何导入Python文件?

对不起,这绝对是重复,但我找不到答案.我正在使用
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'

如果我只是从常见的导入writeFile做python -c“我没有看到错误.

不应该翻译look in the current directory for modules

最佳答案 在导入之前,需要导入的目录必须在该文件夹中包含文件__init__.py

#solution 1(在运行时导入)

要使用已知名称在’runtime’导入特定的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

#solution 2(将文件添加到python库之一)

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

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

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

#solution 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
点赞