После сборки пакета conda и его установки в новую пустую среду мой пакет не может быть импортирован, так как он помещается в каталог python3 .8 / site-packages, тогда как исполняемый файл среды python и весь пакет зависимости находятся под python3 .7.
Начиная с пустого окружения:
conda create -n myenv
conda install --use-local mypackage
Полученная установка заканчивается следующим:
~/miniconda3/envs/myenv/lib/python3.8/site-packages
|-mypackage/
|-mypackage-0.0.0-py3.8.egg.info/
~/miniconda3/envs/myenv/lib/python3.7/site-packages
|- all of the dependencies...
В результате conda env также имеет версию python, установленную на 3.7. Итак, очевидно, что теперь, когда я открываю консоль python и пытаюсь импортировать свой пакет, она терпит неудачу. Озадачивает то, что у меня есть тест импорта в моем meta.yml, который проверяет импорт моего пакета, который, кажется, проходит во время процесса сборки conda.
Если я прикреплю свою версию meta.yml python к python=3.7
вместо python>=3.7
работает. В итоге мой пакет устанавливается в python3 .7 / site-packages вместе со всем остальным, и он отлично работает.
Соответствующие требования к сборке из моего meta.yml:
requirements:
build:
- setuptools
- nodejs>=14.5.0
- mkdocs>=1.1.2
- mkdocs-material>=5.4.0
- mkdocs-material-extensions>=1.0
host:
- python
run:
- python>=3.7
- rabbitmq-server>=3.7.16
- pika>=1.1.0
- pyzmq>=19.0.1
- pyyaml>=5.3.1
- numpy>=1.18.5
- sqlalchemy>=1.3.18
- sqlite>=3.28.0
- netifaces>=0.10.9
- psutil>=5.7.0
- uvloop>=0.14.0
- numexpr>=2.7.1
- fastapi>=0.59.0
- uvicorn>=0.11.3
test:
imports:
- mypackage
Соответствующая строка из моей сборки рецепта conda. sh:
$PYTHON setup.py install