2012-06-20 24 views
0

我正在安装virtualenv,它似乎在访问本地站点软件包之前访问系统站点软件包。 Ipython是其他一些程序所必需的,因此它会自动安装。这只发生在最近,现在它发现该版本,而不是在环境中本地发现的版本。在Ubuntu 12.04中创建一个python virtualenv访问系统在安装本地venv软件包之前安装了python软件包

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

结束了之前的错误,在.bashrc中设置了PYTHON_PATH变量,所以在本地查看之前,这是查看系统构建的目录。那种击败virtual_env的目的。

+0

你是否用'source/path_to_virtualenv/bin/activate'激活了virtualenv? – Enrico

+0

安装时使用--no-site-packages选项 –

+0

您的意思是这个问题发生在Ipython shell内部吗?如果是这样,请在virtualenv中安装并使用Ipython。 – wrongite

回答

0

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

+0

如果你这样做,你需要确保你已经为python安装了所有的构建需求,以及你可能已经从包管理器安装的任何其他包。例如,如果你已经安装了'psycopg',你需要首先'apt-get build-dep psycopg',然后再尝试将它安装到你的virtualenv中,否则你的安装将失败。 –