【发布时间】:2015-09-29 16:07:14
【问题描述】:
我最近想出了如何在 python 中导入模块以进行单元测试。作为解决方案,我使用:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from Dev.test import someclass
这在 PyCharm 中运行时运行良好,我得到了预期的输出。但是,当我从终端运行时,我遇到了错误:
ImportError: No module named Dev.test
我有 init 文件它们应该在的位置,但我不知道为什么它在 PyCharm 中工作但不是从终端。我没有更改我的路径或 PyCharm 中的任何内容,因为此代码应该能够在其他机器上以最少的修改运行。关于为什么会发生这种情况以及我可以做些什么来解决它的任何想法?
我的文件夹结构如下
-Current
-Dev
-__init__.py
-test
- __init__.py
-someclass.py
-Tests
-__init__.py
-someunittest.py
我曾尝试从主文件夹以及完整路径运行 someunittest,但它仅适用于 PyCharm
【问题讨论】:
-
是的,但是在终端中查看后它使用的是 2.7,与 PyCharm 中的相同
-
你的文件夹结构是什么?您使用哪些命令在 Python 和 Pycharm 中进行测试,以及来自哪个目录?
-
我添加了我的文件夹结构以进行澄清。我确定 PyCharm 使用的是正确的版本,但也许这是我的路径,尽管我没有更改默认值。
-
是
__init__还是__init__.py? -
“我没有改变我的路径或 PyCharm 中的任何东西”或
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))它是什么?
标签: python python-2.7 pycharm