如何使代码中的 Python 包更新即时生效

sca*_*der 5 python pip

我有以下代码行:

from pip import main as pipmain

# initial installation
pipmain(["install", "pyscenic==0.10.0"])
import pyscenic
pyscenic.__version__

# return 0.10.0
# Some large code here

# second installation
pipmain(["install", "install", "pyscenic==0.10.4"])
import pyscenic
pyscenic.__version__
# still return 0.10.0

# Another large chunk that required new version
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中动态升级pyscenic包。然而,正如我上面指出的,在第二次安装中版本仍然没有改变。我预计它会更改为 0.10.4。我怎样才能正确地做到这一点?

我也尝试过这个,仍然没有效果:

import os
import importlib
os.system('pip install pyscenic==0.10.0')
import pyscenic
pyscenic.__version__
os.system('pip install pyscenic==0.10.4')
import pyscenic
pyscenic.__version__
importlib.reload(pyscenic)
pyscenic.__version__
Run Code Online (Sandbox Code Playgroud)

所有代码都在 IPython(交互式)上进行了测试。如果我退出IPython并再次重新输入它就会生效。但这不是我想要的。

Ewr*_*ran 1

如果可以的话,一个简单的解决方案是编写一个连续运行两个 python 文件的 bash 文件,并使用 pip 在两个 python 运行之间更改 pyscenic 包的版本。您可以执行与此类似的操作,例如:

#!/usr/bin/env bash
pip install pyscenic==0.10.0
python first_script.py
pip install pyscenic==0.10.4
python second_script.py
Run Code Online (Sandbox Code Playgroud)

  • 正如关于评论的帮助中所述,“评论用于要求澄清或指出帖子中的问题”。我认为我的答案没有解决这些问题,而是提出了一种解决斯卡曼德问题的方法。如果您有更多关于为什么我的答案应该是评论的信息,我很乐意阅读! (2认同)

归档时间:

查看次数:

1381 次

最近记录:

4 年,7 月 前