【发布时间】:2019-05-08 00:03:18
【问题描述】:
假设一个 Python 包(例如,MyPackage)由多个模块(例如,MyModule1.py 和 MyModule2.py)和一组单元测试(例如,MyPackage_test.py)组成。
.
├── MyPackage
│ ├── __init__.py
│ ├── MyModule1.py
│ └── MyModule2.py
├── README.md
├── requirements.txt
├── setup.py
└── tests
└── MyPackage_test.py
我想在MyPackage_test.py 的单元测试中导入MyModule1.py 的函数。具体来说,我想通过setup.py install MyPackage在安装包之前和之后导入函数。
目前,我使用两个单独的命令,具体取决于安装包之前或之后的状态:
# BEFORE
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'MyPackage'))
# AFTER
import MyPackage
这可以用一个命令完成吗?
【问题讨论】:
-
可能不是您想要的,但请查看
python setup.py develop。 -
我认为这是不可能的,除非脚本的入口点是包含 setup.py 文件的目录。另请参阅this 帖子了解更多信息。
-
对我来说,这些看起来像是两个不同的导入。扩展
sys.path时,您根本不能导入MyPackage,只能导入MyModule1等。您原来的问题是什么?您无法在测试中导入您的包吗? -
有趣的问题。我很好奇你为什么要这样做。为什么要在已安装软件包之后运行单元测试?
标签: python python-2.7 package python-import pypi