【问题标题】:How can I stop virtualenv changing my PATH order如何停止 virtualenv 更改我的 PATH 顺序
【发布时间】:2015-05-03 07:35:38
【问题描述】:

我现在的状态是这样的:

>>> virtualenv --version
1.11.6
>>> export PATH=$(getconf PATH)
>>> . ~/.bashrc
>>> echo -e "${PATH//:/\\n}"
/bin
/usr/bin
/home/jozxyqk/bin
/usr/local/cuda/bin

但激活虚拟环境后,

>>> . env/bin/activate
>>> echo -e "${PATH//:/\\n}"
/home/jozxyqk/somepath/env/bin
/usr/local/cuda/bin
/usr/lib64/qt-3.3/bin
/usr/lib64/ccache
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/home/jozxyqk/bin

现在/usr/local/cuda/bin 出现在/usr/bin 之前,并且开始使用gcc 的真正旧版本,因为cuda/bin 中有一个符号链接(我正在尝试pip install 需要gcc 的东西)。现在在我的情况下,我可以通过删除我的符号链接来解决这个问题,但是在PATH 中的 afaik 排序对于保留非常重要。除了打破东西,让/usr/bin的位置改变看起来就像a bit of a security issue

这是一个错误吗?有解决方法还是我做错了什么?

【问题讨论】:

  • 我猜virtualenv 记得你第一次设置它时的路径。
  • @tripleee 哦。激活只是在重新运行时不会刷新路径。很棒的收获!我现在不觉得很傻。 unset _OLD_VIRTUAL_PATH 并重新运行激活解决它。如果你写,我会接受答案。

标签: bash path virtualenv


【解决方案1】:

virtualenv 会记住您第一次设置时的路径。 unset _OLD_VIRTUAL_PATH 并重新运行 activate 以重置它。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 2010-11-30
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多