Разработанный локально пакет Python не может быть найден conda в другом пакете - PullRequest
0 голосов
/ 27 марта 2019

У меня есть два локально разработанных пакета Python.Одним из них является независимый пакет вспомогательных функций.Другой пакет должен использовать вспомогательные функции для анализа данных.Тем не менее, я не могу получить "conda install" для второго пакета, чтобы найти вспомогательный пакет.Я новичок в пакетах Python и Conda.Что мне нужно сделать, чтобы иметь возможность использовать пакет помощника при установке conda?

Я просмотрел stackoverflow и Интернет, но не могу найти ничего, что мне помогло бы.Есть несколько статей, которые близки, но я не думаю, что спросить то же самое.Я использую Fedora 26, Python 3.6.5 и conda 4.6.8.

У вспомогательного пакета есть отдельная среда conda плюс файлы require.txt, setup.py, init .ру, и тому подобное.Пакет довольно простой:

myHelper/
---- requirements.txt
---- setup.py
---- other files...
---- myHelper/
-------- __init__.py
-------- other modules...

needs.txt:

setuptools
pandas==0.20.1
scipy==0.19.1
numpy==1.12.1

setup.py:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="myHelper",
    version="0.0.1",
    author="redacted",
    author_email="redacted@detcader.com",
    description="Helpful miscellaneous python functions",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/redacted/myHelper",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
)

_ _ init _ _.py (ПримечаниеЯ намеренно не импортирую вещи):

name = "myHelper"

После создания и активации среды conda я использую 'conda install' без проблем.Я настраиваю пакет помощника с помощью:

python setup.py develop

Насколько я понимаю, я хочу аргумент'velop ', потому что я буду продолжать изменять пакет помощника и хочу, чтобы обновления были видны другим пакетам.Вспомогательный пакет работает нормально, и я могу импортировать его вне пакета и вне среды conda.

Проблема заключается в том, что я пытаюсь использовать 'conda install' в другом пакете (myPackage).Другой пакет имеет те же самые важные файлы пакета и структуру, как показано выше, с файлом требований, имеющим дополнительную строку для включения myHelper.Я создал и активировал среду conda для myPackage.

Однако запустить 'conda install --file = needs.txt' в myPackage не удается из-за этой ошибки:

Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - myHelper

Current channels:

  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/linux-64
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

...

Использование '--use-local 'flag дает тот же результат.Я неправильно настроил myHelper?Я неправильно настраиваю myPackage?Я пропустил шаг?Я не обязательно хочу публиковать myHelper для всего мира, просто используйте его локально, но при этом сможете разрабатывать его.Я бы лучше выучил «правильный» способ упаковки conda и python, чем хакерское решение дать какой-то прямой путь к файлу или чему-то еще.

Спасибо!

...