Python - 在 setup.py 安装之前和之后导入包模块

标签 python python-2.7 package python-import pypi

假设一个 Python 包(例如,MyPackage)由多个模块(例如,MyModule1.pyMyModule2.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

这可以用一个命令完成吗?

最佳答案

选项 1:

看来下面的命令可以满足我的需要:

sys.path.append(os.path.join(__file__.split(__info__)[0] + __info__), __info__)

选项 2:

根据 __init__.py 的位置,这也有效:

sys.path.append(os.path.dirname(os.path.split(inspect.getfile(MyPackage))[0]))

选项 3:

此外,ResourceManager API似乎提供了额外的方法。

关于Python - 在 setup.py 安装之前和之后导入包模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53648900/

相关文章:

ubuntu - 如何在 ubuntu 包中安装图标

密码的python hex hmac md5与javascript不匹配

python - Python中的继承基础

python - 为什么我必须将这个 import 语句写两次?

ubuntu快速换包安装文件夹

windows - 将 python 模块从一个系统复制到另一个系统

python - 将字典的值更改为列表

python - 分离实例错误 : Instance <HomeCategory > is not bound to a Session; attribute refresh operation cannot proceed

python - 读取有时包含多个空格的 CSV

python - 将字典的字典转换为列表的字典