Python 在 vi​​rtualenv 之外导入了错误版本的库

Python imports wrong version of library outside of virtualenv

需要帮助更新 python 包。

我有一个需要以下导入的实现

from twisted.internet.ssl import optionsForClientTLS

"optionsForClientTLS" 已添加到版本 14(?) 的扭曲框架中。我认为非 virtualenv 导入正在获得一个过时的版本——如果该导入是在一个通过 pip 扭曲安装的 virtualenv 中,一切都很好。在 virtualenv 之外导入失败。

在虚拟环境中

twistd --version

显示 15.2.1。在裸系统上它显示 13.2.0.

pip install twisted
....
pip freeze

显示

Twisted==15.2.1

使用 pip 卸载 twisted 并重新安装没有帮助。您可以使用

从 apt-get 安装 twisted
sudo apt-get install python-twisted

它安装了旧版本,但在清除它并仅使用 pip 安装后,我仍然得到旧版本。

Possibly related.

我以糟糕的方式解决了这个问题。这是几天前的事,所以路径可能不完全正确。

假设有两个 python 包是正确的(我认为。)我怀疑 PYTHONPATH 中的路径顺序意味着首先导入了错误的版本,而 pip 正在安装一个版本那是后来的路径。

我的 "solution" 是将扭曲的目录从最新版本复制到旧版本。这是从 usr/local/lib/python...usr/lib/python... 或从 ... site-packages... dist-packages. 我可以再次检查是否有人遇到相同的问题但无法解决。