Почему conda хочет понизить все до Python 2.7, если мой пакет - Python 3.6? - PullRequest
2 голосов
/ 02 июля 2019

Я пытаюсь обновить наше приложение до Python 3, но не могу заставить conda признать, что пакет совместим.

Пакет выглядит нормально и выглядит как пакет Python 3:

 λ conda search jbagdal --info

jbagdal 2.2.0 py36_vc15hca0d6c3_0
---------------------------------
file name   : jbagdal-2.2.0-py36_vc15hca0d6c3_0.tar.bz2
name        : jbagdal
version     : 2.2.0
build       : py36_vc15hca0d6c3_0
build number: 0
size        : 8.7 MB
subdir      : win-64
url         : file://devserver/conda_packages/win-64/jbagdal-2.2.0-py36_vc15hca0d6c3_0.tar.bz2
md5         : 600a8...770e9
timestamp   : 2019-07-02 14:42:03 UTC
dependencies:
  - geos
  - numpy
  - proj4
  - python >=3.6,<3.7.0a0
  - sqlite

Однако, когда я создаю новую среду conda с использованием Python 3.6.8 и пытаюсь установить пакет, я получаю сообщение о том, что многие зависимости будут понижены до Python 2.7.

λ conda install jbagdal

The following packages will be DOWNGRADED:

  certifi                                  2019.6.16-py36_0 --> 2019.6.16-py27_0
  pip                                         19.1.1-py36_0 --> 19.1.1-py27_0
  python                                   3.6.8-h9f7ef89_7 --> 2.7.15-h2880e7c_4
  setuptools                                  41.0.1-py36_0 --> 41.0.1-py27_0
  vc                                        14.1-h0510ff6_4 --> 9-h7299396_1
  wheel                                       0.33.4-py36_0 --> 0.33.4-py27_0
  wincertstore                           0.2-py36h7fe50ca_0 --> 0.2-py27hf04cefb_0

Я посмотрел это, и некоторые люди предложили явно указать версию Python, но это тоже не работает.

 λ conda install jbagdal python==3.6.8
Collecting package metadata: done
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - jbagdal
  - python==3.6.8
Use "conda search <package> --info" to see the dependencies for each package.

Что не так с моим пакетом?Почему conda не верит, что это пакет Python 3?Что мне нужно изменить в рецепте, чтобы заставить его строить как Python 3.

meta.yaml

package:
  name: jbagdal
  version: 2.2.0

source:
  git_rev: trunk
  git_url: https://srcserver/GDAL/gdal.git

build:
  features:
    - vc9     [win and py27]
    - vc10    [win and py34]
    - vc14    [win and py35]
    - vc15    [win and py>=36]

requirements:
  build:
    - swig
    - sqlite
    - python
    - numpy
    - setuptools
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}

  run:
    - python
    - sqlite
    - numpy
    - geos
    - proj4

about:
  home: www.gdal.org
  license:
  license_file:

Вывод информации conda

     active environment : deleteme
    active env location : C:\ProgramData\Anaconda2\envs\deleteme
            shell level : 1
       user config file : C:\Users\jontwo\.condarc
 populated config files : C:\Users\jontwo\.condarc
          conda version : 4.6.8
    conda-build version : 3.0.15
         python version : 2.7.15.final.0
       base environment : C:\ProgramData\Anaconda2  (writable)
           channel URLs : file://devserver/conda_packages/win-64
                          file://devserver/conda_packages/noarch
                          https://conda.anaconda.org/scitools/win-64
                          https://conda.anaconda.org/scitools/noarch
                          https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/win-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\ProgramData\Anaconda2\pkgs
                          C:\Users\jontwo\.conda\pkgs
                          C:\Users\jontwo\AppData\Local\conda\conda\pkgs
       envs directories : C:\ProgramData\Anaconda2\envs
                          C:\Users\jontwo\.conda\envs
                          C:\Users\jontwo\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.6.8 requests/2.21.0 CPython/2.7.15 Windows/10 Windows/10.0.17134
          administrator : False
             netrc file : None
           offline mode : False

Команда Conda build указывает версию Python:

conda build . --output-folder v:\conda_packages --python=3.6.8

А текущая среда conda - Python 3.6.8:

 λ python --version
Python 3.6.8 :: Anaconda, Inc.

1 Ответ

0 голосов
/ 05 июля 2019

И ответ таков: meta.yaml неверно.

    - vc14    [win and py35]
    - vc15    [win and py>=36]

должно быть

    - vc14    [win and py>=35]

Ошибка [track_features] произошла из-за того, что conda искал vc15на локальной машине, прежде чем он установит.Как только я изменил его обратно на vc14, все заработало нормально.

...