无法在 Ubuntu 20 上使用 virtualenv 和 dienvwrapper

无法在 Ubuntu 20 上使用 virtualenv 和 dienvwrapper

我正在使用 Python3.7 并按照上面提到的进行virtualenv安装virtualenvwrapper这篇 FreeCodeCamp 文章

我的文件更改.bashrc如下:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# popo edit: Add Python alias
alias python=python3

# popo edit: Step to activate virtualenvs
export WORKON_HOME=$HOME/.virtualenvs

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
# SOme more things....

#Virtualenvwrapper settings:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/home/pra-dan/.local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

在采购时.bashrc,我得到了

/usr/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 and that PATH is
set properly.

尽管如此,我设法创建了一个环境(我不知道如何创建),并且在输入时workon,我得到了它的名字。

但现在当我想创造一个新的环境时,我进入$ mkvirtualenv wrk -p python3,我得到

ERROR: virtualenvwrapper could not find /home/pra-dan/.local/bin/virtualenv in your path

答案1

在 Ubuntu 18.04 上,我遇到了以下问题:

usr/bin/python3: Error while finding module specification for virtualenvwrapper.hook_loader'` (ModuleNotFoundError: No module named virtualenvwrapper`)
virtualenvwrapper.sh: There was a problem running the initialization hooks.

如果 Python 无法导入模块virtualenvwrapper.hook_loader,请检查是否virtualenvwrapper已安装 VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3并且 PATH 设置是否正确。

sudo gedit .bashrc

在我的情况下,virtualenvwrapper设置如下 :.bashrc

export WORKON_HOME=~/.envs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh

我已经做了以下事情:

sudo apt install python3-pip
sudo pip3 install virtualenv virtualenvwrapper
source ~/.bashrc

这对我很有帮助。

答案2

我认为您错过了说明中的一个重要提示:导出行需要在引用 virtualenvwrapper.sh 之前。您引用了 virtualenvwrapper.sh 两次。

答案3

确认提供的python路径

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

与您安装virtualenv和virtualenvwrapper的python路径相同。

要找到您的 python 路径,请在控制台中使用which python或命令。which python3

还要验证终端中的pythonpython3命令是否触发所需版本的 python IDLE。

答案4

在 Ubuntu 20.04 上,focalwhich python不会产生任何结果,而which python3会。然而/usr/local/bin/virtualenvwrapper.sh依赖于which python

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

因此,您可以使用 编辑后一个文件,并在您的主页顶部sudo更改which pythonwhich python3或添加export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3(或 显示的任何值) 。which python3.bashrc file

然后安装virtualenvwrapper(针对当前用户),运行:

sudo apt-get install python3-pip
pip install virtualenvwrapper

创建一个新的终端或注销/重新登录以确保消息已消失。

相关内容