python-3.x 错误:环境/Users/myuser/.virtualenvs/iron不包含激活脚本

z4bn682m  于 2022-12-30  发布在  Python
关注(0)|答案(8)|浏览(261)

我正在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/python3which 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销毁并重新创建虚拟环境,这很有效,但是当再次创建环境时,我仍然得到同样的错误。谢谢

yyyllmsg

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作为源代码,在其中添加了设置:

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版本的bug是什么,同时,这为我解决了这个问题,希望这能有所帮助。

q3qa4bjr

q3qa4bjr2#

当我在一个新的RPI 4上使用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  # <== This line fixed it for me

这是上面的@maxmcmahon答案的变体,但是将VIRTUALENVWRAPPER_ENV_BIN_DIR设置为“bin”。我不需要更改virtualenv或virtualenvwrapper的版本;默认安装的当前版本是好的。

mutmk8jj

mutmk8jj3#

我的解决方案是在调用virtualenvwrapper.sh脚本 * 之后 * 将export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin添加到shell启动文件中。
在查看源代码并看到它在usr/local/bin中创建activate脚本后,我找到了这个修复程序,但由于某种原因,virtualenvwrapper.sh脚本只在bin中查找。
我的完整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
vbopmzt1

vbopmzt14#

显示错误是因为创建的虚拟环境未激活。
不要惊慌,您只需要通过运行特定命令来激活它。
对于我来说,在执行$mkvirtualenv cv -p python3之后,虚拟env已经创建,但还没有激活。
在输入上述命令source /home/pi/.virtualenvs/cv/bin/activate之后,它将激活虚拟环境变量。
对我很有效。
现在,我的命令行如下所示:

(cv) pi@raspberrypi:~ $
tgabmvqs

tgabmvqs5#

假设您运行mkvirtualenv <your venv name>命令失败。
你要做的是在你的WORKON_HOME路径(也就是.virtualenv文件夹的路径)中找到激活脚本,这里转到你的新venv文件夹并找到激活脚本。
例如,我的文件在.virtualenv/<my venv name>/local/bin中。在这里,您可以添加到您的.bashrc文件:export VIRTUALENVWRAPPER_ENV_BIN_DIR=local/bin .

pgpifvop

pgpifvop6#

我刚刚碰到这个问题,把我的virtualenv版本降级到20. 0. 3让我绕过了这个问题。
第一个月

pu3pd22g

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中运行

mkvirtualenv -p /usr/local/opt/python@3.10/bin/python3 devel3.10

没有问题,但当没有设置时,我无法再激活develop 3. 10。

workon devel3.10
ERROR: Environment '~/.virtualenvs/devel3.10' does not contain an activate script.

设置后我无法创建另一个python3.9 venv,它失败了,并显示相同的错误信息。

62lalag4

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我的应用程序

相关问题