【问题标题】:How can I import a different version of a python module?如何导入不同版本的 python 模块?
【发布时间】:2017-01-20 08:13:39
【问题描述】:

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

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

但是当我转到其他目录并尝试运行 python 和 import 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

【问题讨论】:

  • 能否请您发布您的站点包文件夹的内容?
  • @crey4fun 我已将它们添加到问题中。
  • 能否再次卸载scikit-learn,然后执行这行代码:pip install -U scikit-learn
  • @crey4fun 刚刚尝试过,它引发了一个错误,说 Installing collected packages: scikit-learn Found existing installation: scikit-learn 0.15.2
  • 这不是错误。它也应该说类似uninstalling old version...。如果是,请再次检查 scikit-learn 版本,它应该是正确的。

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


【解决方案1】:

这里的一般建议是使用virtualenv,它允许您为所有 python 项目提供隔离环境。

因此您的每个项目都可以使用不同的 scikit 版本。

教程:https://www.sitepoint.com/virtual-environments-python-made-easy/

【讨论】:

    【解决方案2】:

    Python 虚拟环境旨在解决此问题。通过导航到项目目录并输入pyvenv ./Env 命令来创建虚拟环境。使用source ./Env/bin/activate 在 linux 系统上激活环境。现在你有了一个沙盒 python 环境,你现在安装的任何包都将只适用于这个环境。所以你可以pip install scikit-learn-0.17 你只会指向 THAT 包。除非您通过 pip 之类的方法显式添加它们,否则所有其他不在此虚拟环境中的包都会被忽略。

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

    【讨论】:

      猜你喜欢
      • 2015-05-23
      • 1970-01-01
      • 2021-07-02
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多