atom-community / atom-community/ide-python
Third-party module classes not detected when setting PYTHONPATH in a shell file
- Dominant language
- JavaScript
- Stars
- 238
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
I've defined a shell script inside the root of my project, called `run.sh`. What it does is, adds two paths relating to a third-party module (GAMS Python API), to `PYTHONPATH` environment variable, and then calls python with all arguments given to the script:
```bash
#!/bin/bash
export PYTHONPATH=/opt/gams/gams34.3_linux_x64_64_sfx/apifiles/Python/api_39/:"$PYTHONPATH"
export PYTHONPATH=/opt/gams/gams34.3_linux_x64_64_sfx/apifiles/Python/gams/:"$PYTHONPATH"
export PYTHONPATH="$(pwd)":"$PYTHONPATH"
python3 $@
```
In the package settings, I've configured the python path to `./run.sh`, for the script to be called and the module being detected by the package.
However, after updating the package version to 1.9.4, it no longer detects the classes inside the `gams` module:

Note that, _the script works perfectly with 1.9.3_. I downgraded the package and then upgraded it, and it seems it is reproducable for me.
(I don't think the system specs are needed, as I just mentioned, the issue is new in 1.9.4, with exact set of packages and Atom version)
Contributor guide
Research direction
Start by reproducing the missing GAMS class detection with the provided run.sh and compare package versions 1.9.3 and 1.9.4. Trace how the package invokes the configured Python path and reads PYTHONPATH. Done means classes inside the gams module are detected again when using run.sh.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, javascript, python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100