如何在python中导入模块

问题描述 投票:1回答:3

我在python中创建一个lambda函数。这是我项目的当前结构。

lambda/
|-- package_name/
|   |-- __init__.py
|   |-- lambda_function.py
|   |-- a.py 
|   |-- utils.py
|
|-- tests/
|   |-- __init__.py
|   |-- test_main.py
|-- setup.py
|-- README

我想在test_main.py中导入lambda_function.py和a.py.

我试过了

from a import *
import a
from package_name import a

和其他一些人,但没有任何工作。

你能解释一下什么是正确的解决方案,为什么我尝试的实际上不起作用?

python testing python-import directory-structure
3个回答
1
投票

如果您的工作目录是lambda,请尝试:

from package_name import a

有一些预先确定的地方,python将寻找包。通常工作目录就是其中之一。

见:https://leemendelowitz.github.io/blog/how-does-python-find-packages.html


0
投票

我建议你阅读Python文档中的import: Python 3:https://docs.python.org/3/reference/import.html Python 2:https://docs.python.org/2/tutorial/modules.html

但您可以使用以下方法相对导入:import * from ../package_name/aimport * from ../package_name/lambda_function

或者您需要将package_name文件夹添加到sys.path,然后在尝试时添加import * from a

可以使用以下命令添加到sys.path:

import sys
module_path = "the path to your package_name"
sys.path.insert(0, module_path)

0
投票

from ..package_name.lambda_function.a import *

您尝试的操作无效,因为您要访问的文件位于不同的目录中。

© www.soinside.com 2019 - 2024. All rights reserved.