Files
orion/docs/development/pycharm-configuration-make.md

3.1 KiB

PyCharm Make Configuration with Virtual Environment

Problem

When using PyCharm's Make panel, you might encounter errors like:

CreateProcess error=2, The system cannot find the file specified

Or pytest/other venv tools not being found:

make (e=2): The system cannot find the file specified

This happens because PyCharm's Make panel doesn't inherit your virtual environment's PATH.

Solution

Step 1: Install Make (if not already installed)

If you don't have make installed, install it via Chocolatey:

choco install make

This will install make to: C:\ProgramData\chocolatey\bin\make.exe

Step 2: Create a Batch Wrapper Script

Create a file called make-venv.bat in your project root directory:

@echo off
call venv\Scripts\activate.bat
C:\ProgramData\chocolatey\bin\make.exe %*

Important Notes:

  • Replace C:\ProgramData\chocolatey\bin\make.exe with the actual path to your make executable if different
  • The script assumes your virtual environment is in venv\ folder relative to project root
  • Adjust the path to activate.bat if your venv is in a different location

Step 3: Configure PyCharm Make Settings

  1. Open PyCharm Settings: File → Settings (Ctrl+Alt+S)

  2. Navigate to: Build, Execution, Deployment → Build Tools → Make

  3. Set the Path to make executable to: [YOUR_PROJECT_PATH]\make-venv.bat

    For example: E:\Letzshop-Import-v1\make-venv.bat

  4. Click Apply and OK

Step 4: Test the Configuration

  1. Open the Make panel in PyCharm (usually at the bottom of the IDE)
  2. Run any make target (e.g., test)
  3. The command should now work with access to your virtual environment

How It Works

The batch wrapper script:

  1. Activates your Python virtual environment
  2. Calls the actual make executable with all passed arguments (%*)
  3. Ensures that pytest and other venv-installed tools are available in PATH

Alternative Approach: Modify Makefile

If you prefer not to use a wrapper script, you can modify your Makefile to use full paths:

# Instead of:
test:
	pytest tests/ -v

# Use:
test:
	venv\Scripts\pytest.exe tests/ -v

Troubleshooting

Make executable not found

  • Verify make is installed: where make in PowerShell
  • Update the path in make-venv.bat to match your make location

Virtual environment not activating

  • Check that venv\Scripts\activate.bat exists in your project
  • Verify the path in the batch script matches your venv location
  • Ensure your virtual environment is properly set up

Permission errors

  • Make sure the batch script has execute permissions
  • Try running PyCharm as administrator if needed

Team Setup

For team consistency:

  1. Ensure all team members have the same project structure
  2. Add make-venv.bat to your version control
  3. Document the PyCharm configuration steps in your team onboarding
  4. Consider using relative paths in the batch script for portability

Example Project Structure

your-project/
├── venv/
│   └── Scripts/
│       ├── activate.bat
│       └── pytest.exe
├── tests/
├── Makefile
├── make-venv.bat
└── requirements.txt