Пользовательский пакет Conda устанавливается в неправильный каталог python версии - PullRequest
2 голосов
/ 03 августа 2020

После сборки пакета 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
...