zzart
zzart

Reputation: 11473

Pipenv not setting PYTHONPATH

I have the following structure

.
├── module1
│   ├── __init__.py
│   └── start.py
├── module2
│   ├── __init__.py
│   └── settings.py
└── Pipfile

cat module1/start.py

from module2.settings import VAR

if __name__ == '__main__':
    print(VAR)

cat module2/settings.py

VAR = 'foo'

If I try to run my program I get

pipenv shell
python module1/start.py

Traceback (most recent call last):
  File "module1/start.py", line 1, in <module>
    from module2.settings import VAR
ModuleNotFoundError: No module named 'module2'

or

pipenv run python module1/start.py

Traceback (most recent call last):
  File "module1/start.py", line 1, in <module>
    from module2.settings import VAR
ModuleNotFoundError: No module named 'module2'

Why doesn't pipenv set PYTHONPATH correctly ?

Upvotes: 1

Views: 2301

Answers (1)

zzart
zzart

Reputation: 11473

I realized I can use .env files to setup PYTHONPATH and make pipenv use it.

echo "PYTHONPATH=${PWD}" >> .env 

Upvotes: 6

Related Questions