Myk
Myk

Reputation: 279

Conda can't find packages at pypi.org/simple

I have a problem with installing packages via conda. It can not find any package in channel https://pypi.org simple.

conda install logbook

returns:

PS C:\WINDOWS\system32> conda config --add channels 
https://pypi.org/simple
Warning: 'https://pypi.org/simple' already in 'channels' list, moving to the top
PS C:\WINDOWS\system32> conda install Logbook
Fetching package metadata ....
WARNING: The remote server could not find the noarch directory for the
requested channel with url: https://pypi.org/simple

It is possible you have given conda an invalid channel. Please double-check
your conda configuration using `conda config --show`.

If the requested url is in fact a valid conda channel, please request that the
channel administrator create `noarch/repodata.json` and associated
`noarch/repodata.json.bz2` files, even if `noarch/repodata.json` is empty.
$ mkdir noarch
$ echo '{}' > noarch/repodata.json
$ bzip2 -k noarch/repodata.json
...........

PackageNotFoundError: Packages missing in current channels:

  - logbook

We have searched for the packages in the following channels:

  - https://pypi.org/simple/win-64
  - https://pypi.org/simple/noarch
  - https://repo.continuum.io/pkgs/main/win-64
  - https://repo.continuum.io/pkgs/main/noarch
  - https://repo.continuum.io/pkgs/free/win-64
  - https://repo.continuum.io/pkgs/free/noarch
  - https://repo.continuum.io/pkgs/r/win-64
  - https://repo.continuum.io/pkgs/r/noarch
  - https://repo.continuum.io/pkgs/pro/win-64
  - https://repo.continuum.io/pkgs/pro/noarch
  - https://repo.continuum.io/pkgs/msys2/win-64
  - https://repo.continuum.io/pkgs/msys2/noarch

I have checked manually in browser, that the logbook module is in the list on page https://pypi.org/simple. hoever, it seems that conda seeks packages in https://pypi.org/simple/win-64, but the win-64 directory does not exist there.

conda config --show says, that configured channel is https://pypi.org/simple

add_anaconda_token: True
add_pip_as_python_dependency: True
allow_non_channel_urls: True
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: False
anaconda_upload: None
auto_update_conda: True
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: True
channels:
  - https://pypi.org/simple
  - https://pypi.org/simple/
  - defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
create_default_packages: []
custom_channels:
  pkgs/main: https://repo.continuum.io/
  pkgs/free: https://repo.continuum.io/
  pkgs/r: https://repo.continuum.io/
  pkgs/pro: https://repo.continuum.io/
  pkgs/msys2: https://repo.continuum.io/
  C:/Program%20Files/Anaconda3/conda-bld: file:///

Any advice?

Upvotes: 3

Views: 5504

Answers (2)

Bill Bell
Bill Bell

Reputation: 21643

Many Python products are available for Windows on the Gohlke page.

Assuming you have 64-bit Py3.6 installed in its own environment, called Py36, you can do this.

Download Logbook-1.1.0-cp36-cp36m-win_amd64.whl from Gohlke (or whatever version it is that you need).

Then within a command prompt:

  • activate the conda environment where you want to install Logbook.
  • Use pip to install the whl that you have downloaded within that environment.
  • Verify success, if you wish.

C:\scratch>activate Py36

(Py36) C:\scratch>pip install Logbook-1.1.0-cp36-cp36m-win_amd64.whl
Processing c:\scratch\logbook-1.1.0-cp36-cp36m-win_amd64.whl
Installing collected packages: Logbook
Successfully installed Logbook-1.1.0

(Py36) C:\scratch>conda list
# packages in environment at C:\ProgramData\Miniconda3\envs\Py36:
#
beautifulsoup4            4.6.0                     <pip>
certifi                   2017.11.5        py36hb8ac631_0
chardet                   3.0.4                     <pip>
idna                      2.6                       <pip>
Logbook                   1.1.0                     <pip>
opencv-python             3.4.0+contrib             <pip>
pip                       9.0.1            py36h226ae91_4
python                    3.6.3                h3b118a2_4
requests                  2.18.4                    <pip>
setuptools                36.5.0           py36h65f9e6e_0
urllib3                   1.22                      <pip>
vc                        14                   h2379b0c_2
vs2015_runtime            14.0.25123           hd4c4e62_2
wheel                     0.30.0           py36h6c3ec14_1
wikipedia                 1.4.0                     <pip>
wincertstore              0.2              py36h7fe50ca_0

Edit: Answer to query in comment.

I entered this:

conda env export -n Py36 -f Py36.yml

Content of yaml file.

name: Py36
channels:
- defaults
dependencies:
- certifi=2017.11.5=py36hb8ac631_0
- pip=9.0.1=py36h226ae91_4
- python=3.6.3=h3b118a2_4
- setuptools=36.5.0=py36h65f9e6e_0
- vc=14=h2379b0c_2
- vs2015_runtime=14.0.25123=hd4c4e62_2
- wheel=0.30.0=py36h6c3ec14_1
- wincertstore=0.2=py36h7fe50ca_0
- pip:
  - beautifulsoup4==4.6.0
  - chardet==3.0.4
  - idna==2.6
  - logbook==1.1.0
  - opencv-python==3.4.0+contrib
  - requests==2.18.4
  - urllib3==1.22
  - wikipedia==1.4.0
prefix: C:\ProgramData\Miniconda3\envs\Py36

Upvotes: 1

MSeifert
MSeifert

Reputation: 152677

A conda channel has to have a specific layout (win-64, win-32, ...) and the package has to be built in a conda-specific way (see Building conda packages with conda skeleton). The packages are generally build against specific Python versions (although there should also be noarch packages) and/or numpy versions and for different platforms (windows, linux, mac 32bit or 64bit).

You cannot directly install packages from PyPI using conda because PyPI doesn't qualify as conda-channel and even if it were the packages there aren't build like conda-packages. But you can install them using pip (within conda).

But: You could check if the packages you want are distributed in a conda-conforming channel (a very popular channel currently is conda-forge). At a first glance several channels contain a package named logbook in the anaconda cloud (search results for logbook).

If you find a channel that distributes the desired version of your package (and against the desired Python version and platform) then just use:

conda install -c channel_name logbook

Upvotes: 5

Related Questions