gpt4 book ai didi

virtualenv - python 和 bpython 在 Virtualenv 中使用不同的 PYTHONPATH

转载 作者:行者123 更新时间:2023-12-01 07:57:21 25 4
gpt4 key购买 nike

我设置的任何虚拟环境的 sys.path 发生了一些奇怪和意外的事情。例如,一个干净的环境:

$ virtualenv test
$ source test/bin/activate
(test) $

这是预期的 PYTHONPATH:

(test) $ python
>>> import sys
>>> print '\n'.join(sys.path)

/home/user/test/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
/home/user/test/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg
/home/user/test/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
/home/user/test/lib/python2.7/site-packages/pip-1.1-py2.7.egg
/home/user/test/lib/python2.7
/home/user/test/lib/python2.7/plat-linux2
/home/user/test/lib/python2.7/lib-tk
/home/user/test/lib/python2.7/lib-old
/home/user/test/lib/python2.7/lib-dynload
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
/home/user/test/local/lib/python2.7/site-packages
/home/user/test/lib/python2.7/site-packages

但这是我真正得到的:

(test) $ bpython
>>> import sys
>>> print '\n'.join(sys.path)

/usr/bin
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages

我无法弄清楚这两个不同的 sys.paths 的原因。因此,没有 pip 安装工作!我正在使用 Virtualenv 1.7.2、Ubuntu 12.04、Python 2.7.3。任何帮助将不胜感激。

最佳答案

我没有为每个 virtualenv 安装一个 bpython 副本,而是将此函数添加到我的 shell 配置文件中(例如 ~/.bashrc~/.zshrc) .它用一些逻辑包装 bpython 命令以加载虚拟环境的 python 路径(如果你有一个事件的虚拟环境)。

bpython() {
if test -n "$VIRTUAL_ENV"
then
PYTHONPATH="$(python -c 'import sys; print ":".join(sys.path)')" \
command bpython "$@"
else
command bpython "$@"
fi
}

关于virtualenv - python 和 bpython 在 Virtualenv 中使用不同的 PYTHONPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11172379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com