Я работаю с apache airflow
и использую упакованные пакеты (https://airflow.apache.org/docs/stable/concepts.html#packaged -dags ).
Мой код находится в удаленном репо (gitlab), и он был написан как python пакет.
Я хотел бы установить свой пакет из gitlab вместе с его зависимостями. Зависимости указаны в req.txt
, проанализированном в setup.py
моего пользовательского пакета.
Среди этих зависимостей у нас есть пакеты numpy
и scipy
После создания ссылки выше, после создания virtualenv, я создаю каталог и собираюсь установить свои пакеты внутри этого каталога:
source venv_path/bin/activate
mkdir dir_tmp
cd dir_tmp
python3 -m pip install --install-option="--prefix=$PWD" git+$git_url
(скажем, переменная $ git_url - это URL моего удаленного репо).
И это выдает ошибку, когда setup.py
для scipy
говорит:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-x5oxncaa/scipy/setup.py", line 540, in <module>
setup_package()
File "/tmp/pip-build-x5oxncaa/scipy/setup.py", line 516, in setup_package
from numpy.distutils.core import setup
ModuleNotFoundError: No module named 'numpy'
тьфу, но numpy
установка прошла нормально. Поэтому я проверил свой dir_tmp
и обнаружил, что
drwxrwxr-x 2 airflow airflow 4.0K Apr 30 12:52 bin
drwxrwxr-x 3 airflow airflow 4.0K Apr 30 12:51 lib
drwxrwxr-x 3 airflow airflow 4.0K Apr 30 12:51 lib64
numpy
был помещен под lib64, и, вероятно, это было причиной ошибки.
I ' Добавлю, что я работаю над centos7. Я сделал точно такой же шаг на машине с Ubuntu 18.04, и все было хорошо.
Как исправить?