错误:环境 /Users/myuser/.virtualenvs/iron 中不包含激活脚本。
错误:环境 /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
简单地销毁并重新创建虚拟环境,这是有效的,但是当再次创建环境时,我仍然收到相同的错误。谢谢。
错误信息: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
问题出现的原因是环境变量中的激活脚本路径不正确。解决方法是设置正确的环境变量。
在一个新的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
解决了问题。
在树莓派的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版本。