How to Fix “mkvirtualenv: command not found” in Bash?
Introduction
Before we start talking about how to fix “mkvirtualenv: command not found” in Bash, let's briefly understand-What is Bash ?
Bash, short for "Bourne Again Shell," is the default command-line interpreter or shell for most Unix-based operating systems, including Linux and macOS. It is a powerful and highly flexible shell that allows users to interact with the operating system through commands and scripts.
When working with virtual environments using tools like virtualenvwrapper
, you may encounter the error message "mkvirtualenv: command not found" in Bash. This typically happens when the necessary environment variables and configurations are not properly set up.
This tutorial will provide steps to fix this error and ensure the mkvirtualenv
command is recognized by your Bash shell. We will also address a few FAQs on how to fix “mkvirtualenv: command not found” in Bash.
Reason 1: Virtual Environment is Not Set
The virtual environment is not configured in the system, which results in the error "mkvirtualenv: command not found". Because the packages "virtualenv" and "virtualenvwrapper" are missing.
Reason 2: The command "mkvirtualenv" is not installed.
The mkdirvitualenv
command not being present in the operating system could also be the cause of the mkvirtualenv: command not found
error. The error is demonstrated in the figure below.
mkvirtualenv test
This tutorial will walk you through installing the mkvirtualenv
command and configuring a virtual environment on Linux.
Solution: Install the “mkvirtualenv” Command and Configure the Virtual Environment
Following are the detailed instructions for installing the mkvirtualenv
tool and configuring the virtual environment on Linux.
Step 1: Install Build Essential for Python
Use the following command to first install the build-essential packages for the Python module:
#Debian/Ubuntu
sudo apt install python3-pip build-essential
#Fedora/CentOS/RHEL
sudo yum install python3-pip gcc-c++ groupinstall "Development Tools"
#Arch
sudo pacman -Sy python3-pip base-devel
Now dependencies are installed, i.e. python & build-essential.
Step 2: Install virtualenv
and virtualenvwrapper
The Python package virtualenv
enables the user to build several environments. While the virtualenvwrapper
is a group of predefined shell functions like bash
, ksh
, and zsh
. Using the pip command, install both of the Python packages as follows:
sudo pip install virtualenv virtualenvwrapper
The virtualenv
and virtualenvwrapper
packages have been set up.
Step 3: Search the File Path (virtualenvwrapper.sh
)
The following step entails looking up the location of the virtualenvwrapper.sh
file (which includes the execution of shell functions) file using the find command:
sudo find / -iname virtualenvwrapper.sh
The location of the virtualenvwrapper.sh
file is displayed.
Note: The trust boundaries established by the Gnome Virtual are the cause of the permission being denied for the error.
(GVFS) File System. This file cannot even be accessed by the sudo user.
Step 4: Configure the .bashrc
File
The ".bashrc" file should now be configured to create the virtual environment. To accomplish this, export the following variable and source command with the virtualenvwrapper.sh
file path, as displayed:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=~/.env
source /usr/local/bin/virtualenvwrapper.sh
Exit after saving the .bashrc
file.
Step 5: Execute the Bash File
To view the new modifications, run the source command after applying the .bashrc
file:
source ~/.bashrc
The virtual environment can be created using the virtualenvwrapper
now.
Verify Results
The environment for the mkvirtalenv
command is already configured, and the user can check the command's version here:
mkvirtualenv --version
Now we can use mkvirtualenv
.
Creating the Virtual Environment
Let's build a virtual environment in the terminal:
mkvirtualenv test
The "test" virtual environment is established.
FAQs on Fixing "mkvirtualenv: command not found" in Bash
What is virtualenvwrapper?
virtualenvwrapper
is a handy tool that helps create and manage Python virtual environments. It provides shortcuts and additional functionalities to streamline virtual environment management.
Why does the "command not found" error occur with mkvirtualenv
?
The "command not found" error occurs when the mkvirtualenv
command is not recognized by Bash. It is usually caused by missing or incorrect environment variable configurations related to virtualenvwrapper
.
How can I install virtualenvwrapper
?
To install virtualenvwrapper
, you can use the Python package manager pip. Run the command pip install virtualenvwrapper
to install it in your Python environment.
What is the purpose of the WORKON_HOME
environment variable?
The WORKON_HOME
environment variable specifies the directory where your virtual environments will be stored. It is used by virtualenvwrapper
to create and manage the virtual environments.
What is the purpose of the source
command in Bash?
The source
command in Bash is used to execute commands in the context of the current shell. It is commonly used to reload environment variable configurations or execute scripts within the current shell session.
How does virtualenvwrapper
find the mkvirtualenv
command?
virtualenvwrapper
relies on the availability of the WORKON_HOME
environment variable, which specifies the virtual environments directory. It locates the mkvirtualenv
command in that directory.
After making changes to my Bash configuration file, do I need to restart the shell?
Yes, after making changes to your Bash configuration file, it is necessary to restart your shell or run the source
command on the file to reload the configurations.
Conclusion
The virtual environment must be established or the command "mkvirtaulenv" must be installed for the error "mkvirtualenv: command not found" to occur. Install the virtual environment settings for Python by installing the virtualenv, virtualenvwrapper, and build-essential packages. The ".bashrc" file should then be adjusted for the virtual environment. Use the source command to run ".bashrc" and the "mkvirtualenv" command to set up a virtual environment.
If you have any queries, please leave a comment below and we’ll be happy to respond to them.