错误:环境 /Users/myuser/.virtualenvs/iron 中不包含激活脚本。

14 浏览
0 Comments

错误:环境 /Users/myuser/.virtualenvs/iron 中不包含激活脚本。

我在macOS Catalina版本10.15.1上运行Python 3.7.6,我正在尝试安装和设置virtualenvwrapper,我已经使用pip3 install virtualenvwrapper进行安装。\n我在我的.bash_profile文件中有以下几行配置:\nexport VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3\nexport VIRTUALENVWRAPPER_VIRTUALENV=/Users/maxcarey/Library/Python/3.7/bin/virtualenv\nexport WORKON_HOME=$HOME/.virtualenvs \nsource /Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh\n这些是我按照下面链接中的配置步骤进行的:\nhttps://stackoverflow.com/a/42643313/5420796,以及其他教程(比如这个)。\n因此,您可以看到我试图将这些导出变量指向正确的位置,在我的终端中,which python3的输出是/usr/local/bin/python3。\nwhich virtualenv的输出是:/Users/maxcarey/Library/Python/3.7/bin/virtualenv。\nwhich virtualenvwrapper.sh的输出是/Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh。\n这是问题所在:当我运行mkvirtualenv iron来创建一个新的虚拟环境(在这个例子中称为iron)时,命令的输出是:\ncreated virtual environment in 193ms CPython3Posix(dest=/Users/maxcarey/.virtualenvs/iron, clear=False, global=False) with seeder FromAppData pip=latest setuptools=latest wheel=latest app_data_dir=/Users/maxcarey/Library/Application Support/virtualenv/seed-v1 via=copy\nvirtualenvwrapper.user_scripts creating /Users/maxcarey/.virtualenvs/iron/bin/predeactivate\nERROR: Environment \'/Users/maxcarey/.virtualenvs/iron\' does not contain an activate script.\n您可以看到虚拟环境确实被创建了,但是我收到了一个没有激活脚本的错误。然而,当我导航到~/.virtualenvs时,我确实可以看到激活脚本。这是在新文件夹iron/local/中运行tree命令的输出:\n

└── local
    └── bin
        ├── activate
        ├── activate.csh
        ├── activate.fish
        ├── activate.ps1
        ├── activate.xsh
        ├── activate_this.py
        ├── easy_install
        ├── easy_install-3.7
        ├── easy_install3
        ├── pip
        ├── pip-3.7
        ├── pip3
        ├── python -> /Library/Developer/CommandLineTools/usr/bin/python3
        ├── python3 -> python
        ├── python3.7 -> python
        ├── wheel
        ├── wheel-3.7
        └── wheel3

\n确实存在激活脚本。所以我对为什么会出现激活脚本错误感到困惑(当运行workon iron时也是同样的错误)。我尝试过使用rmvirtualenv iron简单地销毁并重新创建虚拟环境,这是有效的,但是当再次创建环境时,我仍然收到相同的错误。谢谢。

0
0 Comments

错误信息:Error: Environment /Users/myuser/.virtualenvs/iron does not contain activation script

问题原因:virtualenvwrapper.sh脚本在bin目录中查找activate脚本,但是activate脚本实际上被创建在usr/local/bin目录中。

解决方法:在shell启动文件中添加export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin,使virtualenvwrapper.sh脚本可以正确地找到activate脚本。

完整的shell启动配置如下:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin

0
0 Comments

问题出现的原因是环境变量中的激活脚本路径不正确。解决方法是设置正确的环境变量。

在一个新的RPI4上使用mkvirtualenv命令时,我遇到了同样的错误信息。我在.bashrc文件中添加了以下代码,问题就得到了解决:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin  # <== 这一行对我来说解决了问题

这是一个根据上述答案的变体,将VIRTUALENVWRAPPER_ENV_BIN_DIR设置为"bin"。我不需要更改virtualenv或virtualenvwrapper的版本;默认安装的当前版本已经足够好用了。

这个方法有效,但我不确定为什么会有效...谢谢。

当我遇到这个错误时,我去GitHub查看了virtualenvwrapper的源代码(github.com/bernardobarreto/virtualenvwrapper/blob/master/…)。我在源代码中找到了我遇到的错误,然后搜索了激活脚本的位置。我找到了激活脚本实际所在的位置。然后我设置了VIRTUALENVWRAPPER_ENV_BIN=bin来指向它。由于virtualenvwrapper.sh脚本在目录规范中使用了它,所以它必须是一个相对引用,而不是绝对引用,否则会导致两个'/'出现在一起,从而导致错误。

在我的情况下,bin文件夹位于local/bin,所以设置VIRTUALENVWRAPPER_ENV_BIN_DIR=local/bin解决了问题。

0
0 Comments

在树莓派的Buster系统中,使用Python 3.7.3版本时,遇到了"ERROR...no activation script"的问题。我尝试了一种解决方法,但没有奏效。然后我注意到我安装的virtualenvwrapper版本是5.0.0。我在PyPi上查看了一下,发现最新版本仍然是4.8.4。所以我先卸载了virtualenv和virtualenvwrapper:sudo pip3 uninstall virtualenv virtualenvwrapper。然后重新安装了这两个包并指定了版本:sudo pip3 install virtualenv virtualenvwrapper=='4.8.4'

我在我的.bashrc文件中添加了以下设置,并重新加载了它:

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export PATH=/usr/local/bin:$PATH
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

现在mkvirtualenv test可以正常工作了。不清楚virtualenvwrapper 5.x版本存在什么问题,但这个方法对我来说解决了问题。希望对其他人也有帮助。

另外,某些情况下他在降级之后仍然遇到了同样的激活脚本错误。需要注意的一点是,他没有使用sudo安装这些包,因为这样会遇到另一个问题:stackoverflow.com/questions/33216679/…

还有一些其他用户表示,在树莓派4上使用OpenCV 4.2.0版本时,也成功通过降级virtualenvwrapper到4.8.4解决了问题。另一位用户在使用OpenCV 3.3版本时也遇到了同样的问题,并通过降级virtualenvwrapper解决了。

总结起来,这个问题的原因是virtualenvwrapper 5.x版本存在bug,解决方法是降级到4.8.4版本。

0