diff --git a/docs/development/pycharm-configuration-make.md b/docs/development/pycharm-configuration-make.md new file mode 100644 index 00000000..7b4ff107 --- /dev/null +++ b/docs/development/pycharm-configuration-make.md @@ -0,0 +1,115 @@ +# 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: +```bash +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: + +```batch +@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: + +```makefile +# 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 +``` \ No newline at end of file diff --git a/make-venv.bat b/make-venv.bat new file mode 100644 index 00000000..66116291 --- /dev/null +++ b/make-venv.bat @@ -0,0 +1,3 @@ +@echo off +call venv\Scripts\activate.bat +C:\ProgramData\chocolatey\bin\make.exe %* \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index a7e04a8c..d8b4efaa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,6 +34,7 @@ nav: - Database Migrations: development/database-migrations.md # NEW - Services: development/services.md - Contributing: development/contributing.md + - Pycharm configuration: development/pycharm-configuration.md - Deployment: - Overview: deployment/index.md - Docker: deployment/docker.md