python virtualenvwrapper.sh 崩溃 shell 程序

xxb16uws  于 2023-01-08  发布在  Python
关注(0)|答案(7)|浏览(107)

我正在按照这里描述的virtualenvwrapper的安装说明进行操作。
我使用过pip install virtualenvwrapper,它安装在/home/.pyenv/shims/路径下。
但是当我运行命令source /home/.pyenv/shims/virtualenvwrapper.sh时,整个Konsole都会关闭,我之前把命令放在.bashrc文件中,差点弄坏Linux,因为Konsole打开后会立即崩溃。
我使用的是Linux OpenSuse和Python版本3.6.0。
知道是什么导致了坠机吗?

o4tp2gmn

o4tp2gmn1#

我找到了解决办法。
source ~/.pyenv/versions/VERSION/bin/virtualenvwrapper.sh每次都能工作。
由于某些原因,你不能使用shims目录。也许是因为virtualenvwrapper可能安装在pyenv版本目录中。如果你使用shims目录,当用pyenv切换版本时,该链接可能会断开。最好直接访问它。

xlpyo6sf

xlpyo6sf2#

我在MacOS(10.12.6)上也看到了同样的情况。
对我来说,关闭/结束终端窗口的.zshrc条目是:

source $HOME/.pyenv/shims/virtualenvwrapper.sh

我还想知道为什么会发生这种情况,以及如何解决它。

atmip9wb

atmip9wb3#

我已经在不同的机器上遇到过这个问题好几次了,虽然我不完全理解为什么会发生这个问题,但我已经找到了解决这个问题的方法。
这个问题似乎是由于正在使用的python版本和用于安装virtualenvwrapperpip版本不匹配。我一直使用python(2.7)的系统安装,但pip版本是python 3.5的。
要解决此问题,请使用this answer中的建议,如下所示:

python -m pip install virtualenvwrapper

然后您可以source /path/to/virtualenvwrapper.sh,一切都应该正常工作。

rkue9o1l

rkue9o1l4#

Sean Combs ' answer对我也适用,但是我不想硬编码一个特定的python版本,所以我使用grep动态地构建到virtualenvwrapper.sh的路径。

export VIRTUALENVWRAPPER_PYTHON=$HOME/.pyenv/shims/python
source $HOME/.pyenv/versions/$($VIRTUALENVWRAPPER_PYTHON -V 2>&1 | grep -Po '(?<=Python )(.+)')/bin/virtualenvwrapper.sh
1qczuiv0

1qczuiv05#

添加到Sean's answer,因为我没有足够的信誉添加评论,添加

export PYENV_VERSION="$(pyenv version-name)"
source ~/.pyenv/versions/$PYENV_VERSION/bin/virtualenvwrapper.sh

.bashrc(或者在我的例子中是.zshrc)允许您指向正确的virtualenvwrapper.sh,即使您在没有硬编码或grep的情况下更改了python版本

5cg8jx4n

5cg8jx4n6#

我遇到了同样的问题,我通过安装virtualenvwrapperbuiltin python(例如/usr/bin/python3)解决了这个问题,而不是pyenv python运行时,尽管实际工作区中并不使用内置的运行时。

xurqigkl

xurqigkl7#

我在Mac上遇到了这个问题,我发现如果不指定VIRTUALENVWRAPPER_PYTHON变量,zsh会崩溃,并显示source ~/.pyenv/versions/$PYENV_VERSION/bin/virtualenvwrapper.sh
这是我对新用户的pyenv和virtualenvwrapper的.zshrc(或.bashrc)配置

command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

export PYENV_VERSION="$(pyenv version-name)"
VIRTUALENVWRAPPER_PYTHON="$HOME/.pyenv/shims/python"

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel

source ~/.pyenv/versions/$PYENV_VERSION/bin/virtualenvwrapper.sh

# Tell pyenv-virtualenvwrapper to use pyenv when creating new Python environments
export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"

# Set the pyenv shims to initialize
if command -v pyenv 1>/dev/null 2>&1; then
 eval "$(pyenv init -)"
fi

相关问题