【问题标题】:Creating a python virtualenv in Ubuntu 12.04 accessing system installed python packages before local venv packages在 Ubuntu 12.04 中创建一个 python virtualenv 在本地 venv 包之前访问系统安装的 python 包
【发布时间】:2012-06-20 09:00:18
【问题描述】:

我正在安装 virtualenv,它似乎在访问本地站点包之前访问了系统站点包。其他一些程序需要 Ipython,所以它是自动安装的。这只是最近才发生的,现在它会找到该版本,而不是在环境中本地找到的版本。

如何告诉环境在全局包之前使用环境中的本地包?可以在环境中设置 Path 变量吗?

由于之前在 .bashrc 中设置了 PYTHON_PATH 变量而导致出现错误,因此这是在查看本地目录之前先查看系统构建的目录。有点违背 virtual_env 的目的。

【问题讨论】:

  • 你用source /path_to_virtualenv/bin/activate激活了virtualenv吗?
  • 安装时使用 --no-site-packages 选项
  • 你的意思是这个问题发生在 Ipython shell 内部吗?如果是这样,请在 virtualenv 中安装和使用 Ipython。
  • @Vivek - 是的,我读到过这一点,但事后有什么办法吗?我已经在环境中设置了所有包。

标签: python virtualenv ipython


【解决方案1】:

如果您使用distribute + pip 来管理依赖项,只需运行pip -l freeze > requirements.txt,这将创建所有本地包的依赖项列表。接下来移除当前的virtualenv;重新运行virtualenv 命令并指定--no-site-packages 选项。激活您的新环境,最后pip install -r requirements.txt 以从需求文件中下载所有依赖项。

【讨论】:

  • 如果你这样做,你需要确保你已经为 python 安装了所有的构建要求,以及你可能从你的包管理器安装的任何其他包。例如,如果您安装了psycopg,则需要先apt-get build-dep psycopg,然后再尝试将其安装到您的virtualenv中,否则您的安装将失败。
猜你喜欢
  • 2017-01-26
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2020-07-07
  • 2013-10-20
  • 2013-02-08
  • 2012-07-29
  • 1970-01-01
相关资源
最近更新 更多