如何阻止 virtualenv 更改我的 PATH 顺序
How can I stop virtualenv changing my PATH order
我现在的状态是这样的:
>>> 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
记住您第一次设置时的路径。 unset _OLD_VIRTUAL_PATH
并重新 运行 activate
来重置它。
我现在的状态是这样的:
>>> 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
记住您第一次设置时的路径。 unset _OLD_VIRTUAL_PATH
并重新 运行 activate
来重置它。