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