Установка любого пакета conda возвращает ошибку Python только при использовании репозитория Artifactory в качестве канала - PullRequest
2 голосов
/ 08 мая 2019

Я администратор Artifactory, пытаюсь создать прототип рабочего процесса Conda, чтобы мы могли предоставить пользовательскую документацию при обновлении Artifactory с 5.10 до 6.8. Я установил conda и могу устанавливать пакеты, когда использую каналы по умолчанию (repo.anaconda.com/pkgs / ...). Я хочу, чтобы это работало, когда я устанавливаю каналы в репозитории в Artifactory.

Я создал 4 удаленных репо для:

Затем я включил их в виртуальный репозиторий, называемый «conda-remotes»:

Я следовал инструкциям Artifactory "Set me up", чтобы установить файл .condarc, который указывает на мое виртуальное репо. Когда я запускаю «conda info», я получаю следующий вывод:

(base) [centos@samuelm-sand ~]$ conda info

     active environment : base
    active env location : /home/centos/anaconda3
            shell level : 1
       user config file : /home/centos/.condarc
 populated config files : /home/centos/.condarc
          conda version : 4.6.14
    conda-build version : not installed
         python version : 2.7.16.final.0
       base environment : /home/centos/anaconda3  (writable)
           channel URLs : https://<<REDACTED>>/api/conda/anaconda-remotes/linux-64
                          https://<<REDACTED>>/api/conda/anaconda-remotes/noarch
          package cache : /home/centos/anaconda3/pkgs
                          /home/centos/.conda/pkgs
       envs directories : /home/centos/anaconda3/envs
                          /home/centos/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.20.0 CPython/2.7.16 Linux/3.10.0-693.17.1.el7.x86_64 centos/7.4.1708 glibc/2.17
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Когда я запускаю 'conda install conda-build', он находит его, спрашивает, хочу ли я установить, и затем устанавливает зависимости. Я могу зайти в виртуальный репозиторий Artifactory и посмотреть, как будут кэшироваться зависимости. Это то, что я ожидал, работая до сих пор. Затем, когда все загружено, я получаю следующую ошибку:

Preparing transaction: failed

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/exceptions.py", line 1003, in __call__
        return func(*args, **kwargs)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/cli/main.py", line 84, in _main
        exit_code = do_call(args, p)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/cli/conda_argparse.py", line 82, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/cli/main_install.py", line 20, in execute
        install(args, parser, 'install')
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/cli/install.py", line 275, in install
        handle_txn(unlink_link_transaction, prefix, args, newenv)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/cli/install.py", line 304, in handle_txn
        unlink_link_transaction.execute()
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/core/link.py", line 236, in execute
        self.verify()
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/common/io.py", line 88, in decorated
        return f(*args, **kwds)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/core/link.py", line 213, in verify
        self.prepare()
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/core/link.py", line 205, in prepare
        stp.remove_specs, stp.update_specs)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/core/link.py", line 280, in _prepare
        for prec, pcrec in zip(link_precs, pkg_cache_recs_to_link))
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/core/link.py", line 280, in <genexpr>
        for prec, pcrec in zip(link_precs, pkg_cache_recs_to_link))
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/gateways/disk/read.py", line 104, in read_package_info
        channel=Channel(record.schannel or record.channel),
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/models/channel.py", line 37, in __call__
        c = Channel._cache_[value] = Channel.from_value(value)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/models/channel.py", line 106, in from_value
        return Channel.from_url(path_to_url(value))
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/_vendor/auxlib/decorators.py", line 59, in _memoized_func
        result = func(*args, **kwargs)
      File "/home/centos/anaconda3/lib/python2.7/site-packages/conda/common/url.py", line 119, in path_to_url
        if path[1] == ':':
    IndexError: string index out of range

`$ /home/centos/anaconda3/bin/conda install conda-build`

  environment variables:
                 CIO_TEST=<not set>
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/home/centos/anaconda3/bin/conda
             CONDA_PREFIX=/home/centos/anaconda3
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/home/centos/anaconda3/bin/python
               CONDA_ROOT=/home/centos/anaconda3
              CONDA_SHLVL=1
                 GEM_PATH=/home/centos/.chefdk/gem/ruby/2.4.0:/opt/chefdk/embedded/lib/ruby/gems
                          /2.4.0
                     PATH=/home/centos/anaconda3/bin:/home/centos/anaconda3/bin:/home/centos/ana
                          conda3/condabin:/opt/chefdk/bin:/home/centos/.chefdk/gem/ruby/2.4.0/bi
                          n:/opt/chefdk/embedded/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/us
                          r/sbin:/opt/chefdk/gitbin:/home/centos/.local/bin:/home/centos/bin:/us
                          r/local/go/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : base
    active env location : /home/centos/anaconda3
            shell level : 1
       user config file : /home/centos/.condarc
 populated config files : /home/centos/.condarc
          conda version : 4.6.14
    conda-build version : not installed
         python version : 2.7.16.final.0
       base environment : /home/centos/anaconda3  (writable)
           channel URLs : https://<<REDACTED>>/api/conda/anaconda-remotes/linux-64
                          https://<<REDACTED>>/api/conda/anaconda-remotes/noarch
          package cache : /home/centos/anaconda3/pkgs
                          /home/centos/.conda/pkgs
       envs directories : /home/centos/anaconda3/envs
                          /home/centos/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.20.0 CPython/2.7.16 Linux/3.10.0-693.17.1.el7.x86_64 centos/7.4.1708 glibc/2.17
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

Эта точно такая же ошибка произошла для ВСЕГО, что я пытался установить. Как я уже говорил ранее, если я не использую .condarc и просто использую каналы по умолчанию, это работает. Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 13 мая 2019

Я получил это письмо от службы поддержки jfrog, моя проблема связана с клиентом conda:

Привет, Сэмюэль,

Обратите внимание, что мы смогли воспроизвеститакое же поведение с последним клиентом conda.Вы можете обратиться к следующей проблеме на GitHub (https://github.com/conda/conda/issues/8623) для получения дополнительной информации и описания -> Последняя версия Conda не работает против Artifactory с «установкой conda». Исправление будет включено в следующие версии клиента conda (Исправьте path_to_url «строковый индекс вне диапазона», ошибка # 8625).

В качестве обходного пути, мы предлагаем использовать более старую версию клиента conda, 4.5.x и ниже. Пожалуйста, дайте нам знать, если понадобятся какие-либо дополнительные разъяснения,мы будем рады помочь.

...