动态安装本地 Python 包

问题描述 投票:0回答:2

我正在构建 一个小的 Python 包 和一个朋友。

.
├── __init__.py
└── memoized.py

在开发过程中,我想测试已安装的包——例如,确保某些

__init__.py
代码按预期运行。

目前的实现方式是:

  1. /tmp
  2. 上创建一个virtualenv
  3. 激活它
  4. cd
    到回购目录
  5. python setup.py install
  6. cd
    别处(避免从目录导入而不是从安装包导入)
  7. 测试导入
  8. pip uninstall memoized
  9. 重复步骤 3-7

这又长又麻烦,我依稀记得有一种安装包的方法,它不会将其代码复制到 virtualenv,而是链接到它。这样更改代码将反映在下一次导入时,无需重新安装。

我搜索过“动态导入”等类似内容,但它指的是不同的功能。

如何安装本地 Python 包,以便立即反映包代码的更改?

python setuptools
2个回答
4
投票

您可以先激活 virtualenv 并导航到项目目录。然后运行

pip install --editable . 

--editable
在可编辑模式下安装项目,使用当前工作目录而不是复制源代码.


0
投票

为此有一个instld库。

将其安装在系统中(不是在虚拟环境中,而是在系统中 - 因此库将始终在手边用于快速原型制作,例如在 REPL 中):

pip install instld

现在您可以轻松快速地应用它来安装软件包:

import installed

with installed('some_package'):
    import some_module

本例中,库安装在一个隔离的上下文中,退出后自动销毁。因此,系统中没有垃圾,您也不需要执行其他操作。此外,您甚至可以在不中断解释器会话的情况下安装和试用同一库的多个版本。在我上面附加的链接中的文档中阅读更多相关信息。

© www.soinside.com 2019 - 2024. All rights reserved.