我有一个类似这样的仓库
dev ---> common ---> utils.py
---> scripts --> upload_to_blob.py
当我尝试从通用导入utils时出现以下错误
Traceback (most recent call last):
File "scheduled_scripts/upload_to_blob.py", line 6, in <module>
from common import utils
ModuleNotFoundError: No module named 'common'
我在Anaconda中使用Python 3.6 env和基本Python 2.7
答案 0 :(得分:1)
默认情况下,您不能。导入文件时,Python仅搜索当前目录,入口点脚本运行所在的目录以及sys.path,其中包括诸如软件包安装目录之类的目录(实际上比之复杂一些,但涵盖了大多数情况)。
但是,您可以在运行时将其添加到Python路径:
# some_file.py
import sys
# insert at 1, 0 is the script path (or '' in REPL)
sys.path.insert(1, 'scheduled_scripts/upload_to_blob.py')
import file
答案 1 :(得分:1)
目录中有__init__.py
个文件,您可以访问其他文件。
dev -
|- common
| |- utils.py
| |- __init__.py
|- scripts
| |- upload_to_blob.py
| |- __init__.py
|- __init__.py
如果要包含在文件中,则可以如下使用
from common.utils import *