As someone who loves experimenting with Python libraries and APIs, starting new projects quickly is important. Setting up these projects can sometimes be time-consuming, and a bit annoying to be honest.
Wrote this shell script to automate the process and start coding quickly. Here's what it does -
- Prompts the user to provide a project name as a command-line argument, and throws an error message and usage instructions if the project name argument is missing.
- Creates a new project directory with the specified name.
- Sets up a virtual environment within the project directory.
- Installs required Python dependencies using pip or a preferred package manager.
- Creates sub-directories for source code, tests, and documentation.
- Generates essential files like main.py, requirements.txt, and README.md.
- Initializes a Git repository for version control.
- Opens the main.py file in Visual Studio Code in a new window.
Setting up the script
Check if project name argument is provided
if [ $# -eq 0 ]; then echo “Error: Please provide a project name.” echo “Usage: ./start_python_project.sh <project_name>” exit 1 fi
Get project name as a command-line argument
Create project directory
mkdir $project_name cd $project_name
Initialize virtual environment
virtualenv -p python3 venv source venv/bin/activate
Install dependencies (e.g., requests and numpy)
pip install numpy
Create project structure
mkdir src tests docs
Create main script
Create requirements.txt file
Create README.md file
Initialize version control (Git)
Open main.py in Visual Studio Code in a new window
code –new-window src/main.py
echo “Project setup complete. Happy coding!"
Make the Script Executable
chmod +x start_python_project.sh
Run the Script
[Optional] Create an alias
Open your shell's configuration file (e.g.,
.bash_profile) using a text editor,
#or if you’re using zsh nano ~/.zshrc
Add the following line at the end of the file, replacing
/path/to/start_python_project.sh with the actual path to your shell script:
Using the script to create a new project
In the terminal, you can now start a new Python project by running the following command, replacing
my_project with your desired project name:
newproject <project name>