抱歉,这绝对是重复的,但我找不到答案。我正在使用 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(使用前将#替换为@)