gpt4 book ai didi

Python:如何导入自定义模块

转载 作者:行者123 更新时间:2023-12-01 02:32:00 26 4
gpt4 key购买 nike

我刚刚开始使用 Python,并且对 C#\Java 有更多的经验。那么让我头疼的是如何将我的 Python 模块导入到另一个自定义模块中?我已经尝试过几件事:

SO: Python can't find my module

SO: Cant import my own modules

SO: Import Error: no module named when importing my own module

还有其他几个,但这些通常建议我使用相对导入(在 import 语句之前使用适当数量的 . )。对我来说,它似乎很脆弱,因为据我所知,导入是相对的,并且根据 file.py 的执行位置来解析。

这是我在 PyCharm 中的项目结构:

Project
├───lib
│ ├───__init__.py
│ ├───pages
│ │ ├───__init__.py
│ │ ├───pageA.py
│ │ └───pageB.py
│ └───actions
│ ├───__init__.py
│ ├───actionA.py
│ └───actionB.py
├───tests
│ ├───__init__.py
│ ├───base_test.py
│ └───search_test.py
└───main.py

在我的 search_test.py 中,我导入模块 from lib.actions.actionA import ActionA,在 actionA.py 中,我正在导入类似 from lib.pages.pageA import PageA 的模块。这是我的 main.py:

import unittest
from tests.search_test import SearchTest

def create_test_suite():
test_suite = unittest.TestSuite()
test_suite.addTest(SearchTest())
return test_suite


if __name__ == 'main':
suite = create_test_suite()
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

当我在 PyCharm 中运行它时,它工作得很好。但现在我需要从控制台运行它:

D:\Projects\Python Projects> python -m unittest project_name.main

我遇到了ImportError:没有名为“lib”的模块。有了这个:

D:\Projects\Python Projects\project_name> python main.py

没有任何反应。

我能做什么?我应该坚持相对模式还是导入某种类似 Java 的包?

最佳答案

我认为您应该更改为project_name文件夹并在那里运行python -m unittest main,而不是python -m unittest project_name.main

关于Python:如何导入自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46711861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com