Error: Environment /Users/myuser/.virtualenvs/iron does not contain activation script

Error: Environment /Users/myuser/.virtualenvs/iron does not contain activation script

我在 macOS Catalina 版本 10.15.1 上 运行ning python 3.7.6,我正在尝试安装和设置 virtualenvwrapper,我已经安装了 [=13] =].

我的 .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

这些是我遵循的配置步骤: . As well as other tutorials (like this one)

所以你可以看到我正在尝试将这些导出变量指向​​正确的位置,在我的终端中,which python3 的输出是 /usr/local/bin/python3 which virtualenv 的输出是:/Users/maxcarey/Library/Python/3.7/bin/virtualenv。 which virtualenvwrapper.sh 的输出是 /Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh

问题是:当我运行:mkvirtualenv iron创建一个新的虚拟环境(在本例中称为iron)时,命令的输出是:

使用 seeder FromAppData pip=latest setuptools=latest wheel=latest [=54] 在 193ms CPython3Posix(dest=/Users/maxcarey/.virtualenvs/iron, clear=False, global=False) 中创建了虚拟环境=]=/Users/maxcarey/库/应用程序Support/virtualenv/seed-v1 via=copy virtualenvwrapper.user_scripts 创建 /Users/maxcarey/.virtualenvs/iron/bin/predeactivate 错误:环境“/Users/maxcarey/.virtualenvs/iron”不包含激活脚本。

可以看到确实创建了虚拟环境,但是提示没有激活脚本。但是,当我导航到 ~/.virtualenvs 时,我确实可以看到激活脚本。这是新文件夹 iron/local/:

tree 的输出
└── 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

看来确实有激活脚本。所以我很困惑为什么我会收到激活脚本错误(在 运行ning workon iron 时我也会收到)。我曾尝试使用 rmvirtualenv iron 简单地破坏并重新创建虚拟环境,但是,当再次创建环境时,我仍然遇到相同的错误。谢谢

我刚遇到这个问题,将我的 virtualenv 版本降级到 20.0.3 让我解决了这个问题。

pip3 uninstall virtualenv && pip3 install 'virtualenv==20.0.3'

我 运行 正在 raspbian 破坏者 Python 3.7.3。我 运行 遇到了同样的问题,"ERROR...no activation script"。我尝试了@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 版本有什么错误,与此同时,这解决了我的问题,希望这能有所帮助。

我的解决方案是将 export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin 添加到我的 shell 启动文件 virtualenvwrapper.sh 脚本被调用之后。

我在查看源代码并看到它在 usr/local/bin 中创建 activate 脚本后找到了此修复程序,但 virtualenvwrapper.sh 脚本只在 [=16] 中查找=] 出于某种原因。

我的完整 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  # <== This line fixed it for me

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

错误显示是因为创建的虚拟环境没有激活
不要惊慌,你只需要通过运行一个特定的命令来激活它。
对我来说 $mkvirtualenv cv -p python3,虚拟环境已经创建,但还没有被激活。
在上面的命令你输入source /home/pi/.virtualenvs/cv/bin/activate后,它会激活虚拟环境变量。
它对我有用。
现在我的命令行看起来像:

(cv) pi@raspberrypi:~ $