无法从另一个文件夹导入Python文件

时间:2020-08-10 05:54:10

标签: python

我有一个类似这样的仓库

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

2 个答案:

答案 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 *