python - 如何导入不同版本的 python 模块?

标签 python python-2.7 scikit-learn python-module

我需要在 sklearn v0.17 下运行我的 python 脚本,并且在服务器上安装了 sklearn v0.15。

因此,我将 scikit-learn-0.17 包下载到 /home/mydir/lib/python2.7/site-packages/ 并安装了该包。

但是,当我转到其他目录并尝试运行 python 并导入 sklearn 时,版本仍然是 0.15。

我创建了~/.startup.py并添加了以下代码

import sys  
sys.path.insert(0,"/home/mydir/lib/Python2.7/site-packages/")

然后我用

指向 ~/.bashrc 中的 ~/.startup.py
PYTHONSTARTUP=~/.startup.py

但这并没有帮助。

我想知道如何解决这个问题。谢谢!

以下文件/目录位于 site-packages/

easy-install.pth              scikit-learn-0.17         site.pyc
pysam-0.9.1.4                 scikit_learn-0.17-py2.7.egg-info  site.pyo
pysam-0.9.1.4-py2.7-linux-x86_64.egg  site.py               sklearn

最佳答案

Python 虚拟环境就是为了解决这个问题而创建的。通过导航到项目目录并输入 pyvenv ./Env 命令来创建虚拟环境。使用 source ./Env/bin/activate 激活 Linux 系统上的环境。现在你已经有了一个沙盒 python 环境,无论你现在安装什么包,都只会作用于这个环境。因此,您可以pip install scikit-learn-0.17,您将只指向那个包。不在此虚拟环境中的所有其他包都将被忽略,除非您通过 pip 等方法显式添加它们。

虚拟环境还有许多其他好处,强烈建议阅读更多相关信息 here

关于python - 如何导入不同版本的 python 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457963/

相关文章:

python - Sklearn K表示Clustering convergence

python - 基于 Mac 的 Python GUI 库

python - __builtin__ 和 __builtins__ 有什么区别?

scikit-learn - 如何根据我自己的数据在 scikit-learn 中创建 sklearn.datasets.base.Bunch 对象?

python - 是否有可应用于分类数据输入的特征选择算法?

python - 将 Django 应用程序部署到 Elasticbeanstalk : Error installing packages with Pip

python - a.transpose().ravel()[0]=x 无法更改 numpy 中原始数组的值?

python - 函数列表 Python

python-2.7 - 如何减少 Python 中 If-Else 语句的代码重复

machine-learning - LightGBM:Sklearn 和 Native API 等效项