修复ubuntu上找不到的mkvirtualenv命令

时间:2020-02-23 14:44:08  来源:igfitidea点击:

在此简短的教程中,我们将向我们展示如何在Ubuntu Linux机器上安装MKVirtualenv(VirtualEnvWrapper&Virtualenv)。
VirtualEnvWrapper是Bourne Shell兼容语法中定义的一组shell函数。
VirtualEnv是我们在Linux/MacOS系统中创建许多不同的Python环境。
使用VirtualEnvWrapper我们可以在Linux或者OS X机器上自动执行在以下shell下运行。 bashkshzsh这是我在终端中尝试执行mkvirtualenv的错误。

$mkvirtualenv
mkvirtualenv: command not found

我们需要将VirtualEnvWrapper包安装到安装VirtualEnv的相同全局站点包中。
此安装需要管理权限。
确保使用sudo权限作为root用户或者标准用户身份登录。

更新系统包列表。

sudo apt update

然后安装Python构建工具。

# Python 2
sudo apt-get install python-pip python-dev build-essential
# Python 3
sudo apt-get install python3-pip python3-dev build-essential

然后安装virtualenv和virtualenvwrapper包。

使用APT包管理器:

sudo apt install virtualenv virtualenvwrapper

用pip:

# Python 2
$sudo pip install virtualenv virtualenvwrapper
# Python 3
$sudo pip3 install virtualenv virtualenvwrapper

将其安装到全局站点包中的替代方案是将其添加到用户本地目录(通常~/.local)。
见下文示例:

$pip install --user virtualenv virtualenvwrapper

配置shell.

根据安装方法,我们可能需要将VirtualEnvWrapper脚本路径添加到启动文件(.bashrc,.profile等)。

但首先确认VirtualEnvWrapper脚本的位置。

$sudo find/-name virtualenvwrapper.sh
/usr/share/virtualenvwrapper/virtualenvwrapper.sh

然后编辑~/.bashrc并添加一行源/usr/share/virtualenvwrapper/virtualenvwrapper.sh

$vim ~/.bashrc
source '/usr/share/virtualenvwrapper/virtualenvwrapper.sh'

现在来源你的bashrc文件。

$source ~/.bashrc
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/get_env_details

我们可以将Workon_home变量设置为默认情况下的自定义路径 $HOME/.virtualenvs

export WORKON_HOME=/my/other/path

如果加载了VirtualEnvWrwrapper时不存在该目录,则会自动创建它。

尝试运行mkvirtualenv命令:

$mkvirtualenv -p /usr/bin/python3 test_venv
created virtual environment CPython3.8.2.final.0-64 in 448ms
  creator CPython3Posix(dest=/home/theitroad/.virtualenvs/test_venv, clear=False, global=False)
  seeder FromAppData(download=False, pep517=latest, requests=latest, appdirs=latest, progress=latest, lockfile=latest, certifi=latest, urllib3=latest, packaging=latest, pyparsing=latest, chardet=latest, six=latest, pip=latest, colorama=latest, CacheControl=latest, pkg_resources=latest, webencodings=latest, ipaddr=latest, distlib=latest, contextlib2=latest, html5lib=latest, pytoml=latest, setuptools=latest, msgpack=latest, wheel=latest, idna=latest, distro=latest, retrying=latest, via=copy, app_data_dir=/home/theitroad/.local/share/virtualenv/seed-app-data/v1.0.1.debian)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/test_venv/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/test_venv/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/test_venv/bin/preactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/test_venv/bin/postactivate
virtualenvwrapper.user_scripts creating /home/theitroad/.virtualenvs/test_venv/bin/get_env_details

要在运行中启用项目虚拟环境:

$workon test_venv

退出运行:

$deactivate