我正在macOS Catalina版本10.15.1上运行python 3.7.6,我正在尝试安装和设置virtualenvwrapper
,我已经使用pip3 install virtualenvwrapper
安装了virtualenvwrapper
。
在我的. bash_profile中有以下几行:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/Users/maxcarey/Library/Python/3.7/bin/virtualenv
export WORKON_HOME=$HOME/.virtualenvs
source /Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh
以下是我从中执行的配置步骤:以及其他教程(like this one)
所以你可以看到我试图将这些导出变量指向正确的位置,在我的终端中,which python3
的输出是/usr/local/bin/python3
。which virtualenv
的输出是:/用户/maxcarey/库/Python/3.7/bin/虚拟环境。which virtualenvwrapper.sh
的输出为/Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh
问题是这样的:当我跑步时:mkvirtualenv iron
创建一个新的虚拟环境(在本例中称为iron),命令的输出为:
在193毫秒内创建了虚拟环境CPython3Posix(目标=/用户/maxcary/. virtualenvs/iron,清除= False,全局= False),种子来自应用程序数据pip =最新设置工具=最新轮=最新应用程序数据目录=/用户/maxcary/库/应用程序支持/virtualenv/seed-v1 via = copy virtualenvwrapper.用户脚本创建/用户/maxcary/. virtualenvs/iron/bin/预停用错误:环境"/Users/maxcarey/. virtualenvs/iron "不包含激活脚本。
你可以看到一个虚拟环境确实被创建了,但是,我得到一个错误,说没有激活脚本。但是,当我导航到~/.virtualenvs
时,我确实可以看到激活脚本。
└── 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
看起来确实有激活脚本。所以我很难理解为什么我会得到激活脚本错误(我在运行workon iron
时也会得到)。我试过简单地用rmvirtualenv iron
销毁并重新创建虚拟环境,这很有效,但是当再次创建环境时,我仍然得到同样的错误。谢谢
8条答案
按热度按时间yyyllmsg1#
我正在用Python 3.7.3运行一个raspian buster。我遇到了同样的问题,"错误...没有激活脚本"。我尝试了@Lombax回答,但它不起作用。
但是,我注意到我安装的
virtualenvwrapper
版本是5.0.0,我检查了PyPi,它仍然是4.8.4版本,所以我卸载了virtualenv和virtualenvwrapper:sudo pip3 uninstall virtualenv virtualenvwrapper
.然后我重新安装了两个并指定版本:
sudo pip3 install virtualenv virtualenvwrapper=='4.8.4'
我将. bashrc作为源代码,在其中添加了设置:现在
mkvirtualenv test
可以工作了。不确定virtualenvwrapper 5.x版本的bug是什么,同时,这为我解决了这个问题,希望这能有所帮助。q3qa4bjr2#
当我在一个新的RPI 4上使用
mkvirtualenv
时,我收到了同样的错误消息。我在.bashrc
中添加了以下行,它为我修复了这个问题:这是上面的@maxmcmahon答案的变体,但是将VIRTUALENVWRAPPER_ENV_BIN_DIR设置为“bin”。我不需要更改virtualenv或virtualenvwrapper的版本;默认安装的当前版本是好的。
mutmk8jj3#
我的解决方案是在调用
virtualenvwrapper.sh
脚本 * 之后 * 将export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin
添加到shell启动文件中。在查看源代码并看到它在
usr/local/bin
中创建activate
脚本后,我找到了这个修复程序,但由于某种原因,virtualenvwrapper.sh
脚本只在bin
中查找。我的完整shell启动配置现在是这样的:
vbopmzt14#
显示错误是因为创建的虚拟环境未激活。
不要惊慌,您只需要通过运行特定命令来激活它。
对于我来说,在执行
$mkvirtualenv cv -p python3
之后,虚拟env已经创建,但还没有激活。在输入上述命令
source /home/pi/.virtualenvs/cv/bin/activate
之后,它将激活虚拟环境变量。对我很有效。
现在,我的命令行如下所示:
tgabmvqs5#
假设您运行
mkvirtualenv <your venv name>
命令失败。你要做的是在你的
WORKON_HOME
路径(也就是.virtualenv
文件夹的路径)中找到激活脚本,这里转到你的新venv文件夹并找到激活脚本。例如,我的文件在
.virtualenv/<my venv name>/local/bin
中。在这里,您可以添加到您的.bashrc
文件:export VIRTUALENVWRAPPER_ENV_BIN_DIR=local/bin
.pgpifvop6#
我刚刚碰到这个问题,把我的virtualenv版本降级到20. 0. 3让我绕过了这个问题。
第一个月
pu3pd22g7#
我想评论一下maxmcmahon上面的回答。这个解决方案似乎不向后兼容python3.9。我在macOS上用自制程序测试了这个。可能取决于你的平台,根据https://docs.python.org/3/library/sysconfig.html#sysconfig._get_preferred_schemes,它似乎在usr/local/bin下构建脚本,而不是像python3.10那样在bin下构建脚本。所以你可能需要打开和关闭VIRTUALENVWRAPPER_ENV_BIN_DIR变量。我注意到设置它只能在当前的shell中运行
没有问题,但当没有设置时,我无法再激活develop 3. 10。
设置后我无法创建另一个python3.9 venv,它失败了,并显示相同的错误信息。
62lalag48#
Python3.7到Python3.8生成了一个包含bin目录的venv,但是Python3.11生成的是一个本地/bin目录。
为了修复它,我必须像这样运行python3.11的创建:
虚拟 Package 器环境BIN目录=本地/bin mkvirtualenv -p python3.11我的应用程序
当为其他Python创作时:
虚拟 Package 器环境BIN目录=bin mkvirtualenv -p python3.7我的应用程序