我正在构建 一个小的 Python 包 和一个朋友。
.
├── __init__.py
└── memoized.py
在开发过程中,我想测试已安装的包——例如,确保某些
__init__.py
代码按预期运行。
目前的实现方式是:
/tmp
cd
到回购目录python setup.py install
cd
别处(避免从目录导入而不是从安装包导入)pip uninstall memoized
这又长又麻烦,我依稀记得有一种安装包的方法,它不会将其代码复制到 virtualenv,而是链接到它。这样更改代码将反映在下一次导入时,无需重新安装。
我搜索过“动态导入”等类似内容,但它指的是不同的功能。
如何安装本地 Python 包,以便立即反映包代码的更改?
为此有一个instld库。
将其安装在系统中(不是在虚拟环境中,而是在系统中 - 因此库将始终在手边用于快速原型制作,例如在 REPL 中):
pip install instld
现在您可以轻松快速地应用它来安装软件包:
import installed
with installed('some_package'):
import some_module
本例中,库安装在一个隔离的上下文中,退出后自动销毁。因此,系统中没有垃圾,您也不需要执行其他操作。此外,您甚至可以在不中断解释器会话的情况下安装和试用同一库的多个版本。在我上面附加的链接中的文档中阅读更多相关信息。