Я строю python модуль. Чтобы определить его путь, файл .pth
был определен следующим образом:
# creation of the virtual environment
python -v venv env
# activation of the newly creation virtual environment
source env/bin/activate
Для установки пути моего модуля ( мой модуль находится в packages/regression_model/regression_model
) Я создал этот .pth
файл env/lib/python3.7/site-packages/regression_model.pth
, который содержит:
# env/lib/python3.7/site-packages/regression_model.pth
../../../../packages/regression_model
Теперь, в любом месте моего проекта, я могу импортировать свой модуль regression_model
с помощью этой команды:
import regression_model
На самом деле моя цель - использовать CircleCI для развертывания моего проекта.
CircleCI настроен следующим образом:
version: 2
jobs:
test_regression_model:
working_directory: ~/project
docker:
- image: circleci/python:3.7.6
environment: # environment variables for primary container
PYTHONPATH: ~/project/packages/regression_model:~/project/packages/ml_api
steps:
- checkout
- run:
name: Runnning tests
command: |
virtualenv venv
. venv/bin/activate
pip install --upgrade pip
pip install -r packages/regression_model/requirements.txt
chmod +x ./scripts/fetch_kaggle_dataset.sh
./scripts/fetch_kaggle_dataset.sh
python packages/regression_model/regression_model/train_pipeline.py
py.test -vv packages/regression_model/tests
workflows:
version: 2
test-all:
jobs:
- test_regression_model
Проблема Я сталкиваюсь с тем, что CircleCI указывает, что мой модуль не может быть импортирован
Traceback (most recent call last):
File "packages/regression_model/regression_model/train_pipeline.py", line 4, in <module>
from regression_model import pipeline
ModuleNotFoundError: No module named 'regression_model'
Чтобы решить эту проблему, путь к этому модулю regression_model
должен быть определен именно так, как он было сделано на месте. Тогда возникает вопрос: как определить путь в CircleCI?
Я пытался сделать это с помощью переменной среды PYTHONPATH
, но безуспешно.
Есть предложения?