We are publishing binry wheels for a python package on PyPi. The package has a Fortran extension which we produce with f2py.
Our problem is that the CI images (Gitlab CI for Linux and Appveyor for Windows) tend to have the newest numpy version. Then, when the user installs the binary wheel, the Fortran extension will fail unless the user also has the newest numpy version.
This problem was also described in this SO question.
The proposed solution in the accepted answer was to add a pyproject.toml file containing an older numpy version as a build dependency, like this:
[build-system]
requires = ['numpy==1.15', 'setuptools', 'wheel']
build-backend = "setuptools.build_meta"
and then to require at least that version on the user machine through the install_requires in setup.py, like `'numpy>=1.12.2'.
I tried that, but now it seems that in the Gitlab CI, pip again installs the newest numpy version, which is what I wanted to avoid in the first place.
A part of the output is copied below. In the first lines it says Installing build dependencies and I assume it installs numpy 1.15 then. But later, it says Collecting numpy>=1.15 and Using cached numpy-1.20.1-cp37-cp37m-manylinux2010_x86_64.whl (15.3 MB). So, it doesn't keep the previously installed numpy 1.15 (if any) but overwrites it with the newest version.
My question is, how can I avoid that and make sure that exactly numpy 1.15 is used for the creation of the binary wheel?
$ pip3 install -e .
Obtaining file:///builds/AmosEgel/smuthi
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting mpmath
Downloading mpmath-1.2.1-py3-none-any.whl (532 kB)
Collecting psutil
Downloading psutil-5.8.0-cp37-cp37m-manylinux2010_x86_64.whl (296 kB)
Collecting imageio
Downloading imageio-2.9.0-py3-none-any.whl (3.3 MB)
Collecting scipy
Downloading scipy-1.6.2-cp37-cp37m-manylinux1_x86_64.whl (27.4 MB)
Collecting pycparser
Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
Collecting argparse
Downloading argparse-1.4.0-py2.py3-none-any.whl (23 kB)
Collecting sympy
Downloading sympy-1.7.1-py3-none-any.whl (5.9 MB)
Collecting matplotlib
Downloading matplotlib-3.3.4-cp37-cp37m-manylinux1_x86_64.whl (11.5 MB)
Collecting tqdm
Downloading tqdm-4.59.0-py2.py3-none-any.whl (74 kB)
Collecting h5py
Downloading h5py-3.2.1-cp37-cp37m-manylinux1_x86_64.whl (4.1 MB)
Collecting pywigxjpf
Downloading pywigxjpf-1.11.tar.gz (54 kB)
Collecting numba
Downloading numba-0.53.0-cp37-cp37m-manylinux2014_x86_64.whl (3.4 MB)
Collecting pyyaml
Downloading PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl (636 kB)
Collecting numpy>=1.15
Using cached numpy-1.20.1-cp37-cp37m-manylinux2010_x86_64.whl (15.3 MB)
Ok, the problem was that one of the other requirements (in our case, h5py) required a more recent version of numpy.
Related
i am very on amateur on these things. I downloaded pip and then i used this python get-pip.py to install pip which completed successfully and then i used pip install jupyter notebook and i got the below error
error: subprocess-exited-with-error
Any help will ve appreciated
Microsoft Windows [Version 10.0.19043.2130]
(c) Microsoft Corporation. All rights reserved.
C:\Users\antonis>cd Desktop
C:\Users\antonis\Desktop>python get-pip.py
Defaulting to user installation because normal site-packages is not writeable
Collecting pip
Using cached pip-22.3-py3-none-any.whl (2.1 MB)
Collecting wheel
Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel, pip
WARNING: The script wheel.exe is installed in 'C:\Users\antonis\AppData\Roaming\Python\Python311\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Attempting uninstall: pip
Found existing installation: pip 22.3
Uninstalling pip-22.3:
Successfully uninstalled pip-22.3
WARNING: The scripts pip.exe, pip3.10.exe, pip3.11.exe and pip3.exe are installed in 'C:\Users\antonis\AppData\Roaming\Python\Python311\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-22.3 wheel-0.37.1
C:\Users\antonis\Desktop>pip install jupyter notebook
Defaulting to user installation because normal site-packages is not writeable
Collecting jupyter
Using cached jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Collecting notebook
Using cached notebook-6.5.1-py3-none-any.whl (439 kB)
Collecting qtconsole
Using cached qtconsole-5.3.2-py3-none-any.whl (120 kB)
Collecting jupyter-console
Using cached jupyter_console-6.4.4-py3-none-any.whl (22 kB)
Collecting nbconvert
Using cached nbconvert-7.2.2-py3-none-any.whl (271 kB)
Collecting ipykernel
Using cached ipykernel-6.16.1-py3-none-any.whl (138 kB)
Collecting ipywidgets
Using cached ipywidgets-8.0.2-py3-none-any.whl (134 kB)
Collecting jinja2
Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting tornado>=6.1
Using cached tornado-6.2-cp37-abi3-win_amd64.whl (425 kB)
Collecting pyzmq>=17
Using cached pyzmq-24.0.1-cp311-cp311-win_amd64.whl (990 kB)
Collecting argon2-cffi
Using cached argon2_cffi-21.3.0-py3-none-any.whl (14 kB)
Collecting traitlets>=4.2.1
Using cached traitlets-5.5.0-py3-none-any.whl (107 kB)
Collecting jupyter-core>=4.6.1
Using cached jupyter_core-4.11.2-py3-none-any.whl (88 kB)
Collecting jupyter-client>=5.3.4
Using cached jupyter_client-7.4.3-py3-none-any.whl (132 kB)
Collecting ipython-genutils
Using cached ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting nbformat
Using cached nbformat-5.7.0-py3-none-any.whl (77 kB)
Collecting nest-asyncio>=1.5
Using cached nest_asyncio-1.5.6-py3-none-any.whl (5.2 kB)
Collecting Send2Trash>=1.8.0
Using cached Send2Trash-1.8.0-py3-none-any.whl (18 kB)
Collecting terminado>=0.8.3
Using cached terminado-0.16.0-py3-none-any.whl (16 kB)
Collecting prometheus-client
Using cached prometheus_client-0.15.0-py3-none-any.whl (60 kB)
Collecting nbclassic==0.4.5
Using cached nbclassic-0.4.5-py3-none-any.whl (9.8 MB)
Collecting jupyter-server>=1.8
Using cached jupyter_server-1.21.0-py3-none-any.whl (346 kB)
Collecting notebook-shim>=0.1.0
Using cached notebook_shim-0.2.0-py3-none-any.whl (13 kB)
Collecting entrypoints
Using cached entrypoints-0.4-py3-none-any.whl (5.3 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\antonis\appdata\roaming\python\python311\site-packages (from jupyter-client>=5.3.4->notebook) (2.8.2)
Collecting pywin32>=1.0
Using cached pywin32-304-cp311-cp311-win_amd64.whl (12.1 MB)
Collecting beautifulsoup4
Using cached beautifulsoup4-4.11.1-py3-none-any.whl (128 kB)
Collecting bleach
Using cached bleach-5.0.1-py3-none-any.whl (160 kB)
Collecting defusedxml
Using cached defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting jupyterlab-pygments
Using cached jupyterlab_pygments-0.2.2-py2.py3-none-any.whl (21 kB)
Collecting markupsafe>=2.0
Using cached MarkupSafe-2.1.1.tar.gz (18 kB)
Preparing metadata (setup.py) ... done
Collecting mistune<3,>=2.0.3
Using cached mistune-2.0.4-py2.py3-none-any.whl (24 kB)
Collecting nbclient>=0.5.0
Using cached nbclient-0.7.0-py3-none-any.whl (71 kB)
Requirement already satisfied: packaging in c:\users\antonis\appdata\roaming\python\python311\site-packages (from nbconvert->jupyter) (21.3)
Collecting pandocfilters>=1.4.1
Using cached pandocfilters-1.5.0-py2.py3-none-any.whl (8.7 kB)
Collecting pygments>=2.4.1
Using cached Pygments-2.13.0-py3-none-any.whl (1.1 MB)
Collecting tinycss2
Using cached tinycss2-1.2.1-py3-none-any.whl (21 kB)
Collecting fastjsonschema
Using cached fastjsonschema-2.16.2-py3-none-any.whl (22 kB)
Collecting jsonschema>=2.6
Using cached jsonschema-4.16.0-py3-none-any.whl (83 kB)
Collecting pywinpty>=1.1.0
Using cached pywinpty-2.0.8.tar.gz (23 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Cargo, the Rust package manager, is not installed or is not on PATH.
This package requires Rust and Cargo to compile extensions. Install it through
the system's package manager or via https://rustup.rs/
Checking for Rust toolchain....
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
This problem is usually related to your python version, you can try to delete python 3.10 and install 3.9
When trying to install scanpy, I get the following error
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
poetry 1.1.11 requires packaging<21.0,>=20.4, but you have packaging 21.2 which is incompatible
In that sense, I tried to downgrade packaging from version 21.2 to 20.9 or 20.8, with
! pip install --upgrade packaging==20.9
or with
! pip uninstall packaging -y
! pip install -I packaging==20.8
but I still get that error, as if the packaging version did not change.
Here is the full block
! pip install --upgrade packaging==20.9
#! pip uninstall packaging -y
#! pip install -I packaging==20.8
#! pip install poetry --upgrade
! pip uninstall scanpy -y
! pip install -I scanpy
and the full output
Collecting packaging==20.9
Using cached packaging-20.9-py2.py3-none-any.whl (40 kB)
Requirement already satisfied: pyparsing>=2.0.2 in /data04/projects04/MarianaBoroni/lbbc_members/lib/conda_envs/diogoamb/lib/python3.9/site-packages (from packaging==20.9) (3.0.4)
Installing collected packages: packaging
Attempting uninstall: packaging
Found existing installation: packaging 21.2
Uninstalling packaging-21.2:
Successfully uninstalled packaging-21.2
Successfully installed packaging-20.9
Found existing installation: scanpy 1.8.2
Uninstalling scanpy-1.8.2:
Successfully uninstalled scanpy-1.8.2
Collecting scanpy
Using cached scanpy-1.8.2-py3-none-any.whl (2.0 MB)
Collecting anndata>=0.7.4
Using cached anndata-0.7.6-py3-none-any.whl (127 kB)
Collecting h5py>=2.10.0
Using cached h5py-3.5.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.5 MB)
Collecting scipy>=1.4
Using cached scipy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (28.5 MB)
Collecting sinfo
Using cached sinfo-0.3.4-py3-none-any.whl
Collecting matplotlib>=3.1.2
Using cached matplotlib-3.4.3-cp39-cp39-manylinux1_x86_64.whl (10.3 MB)
Collecting umap-learn>=0.3.10
Using cached umap_learn-0.5.2-py3-none-any.whl
Collecting numba>=0.41.0
Using cached numba-0.54.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.3 MB)
Collecting joblib
Using cached joblib-1.1.0-py2.py3-none-any.whl (306 kB)
Collecting numpy>=1.17.0
Using cached numpy-1.21.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
Collecting seaborn
Using cached seaborn-0.11.2-py3-none-any.whl (292 kB)
Collecting natsort
Using cached natsort-8.0.0-py3-none-any.whl (37 kB)
Collecting statsmodels>=0.10.0rc2
Using cached statsmodels-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB)
Collecting networkx>=2.3
Using cached networkx-2.6.3-py3-none-any.whl (1.9 MB)
Collecting tables
Using cached tables-3.6.1-cp39-cp39-manylinux2010_x86_64.whl (14.3 MB)
Collecting tqdm
Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
Collecting patsy
Using cached patsy-0.5.2-py2.py3-none-any.whl (233 kB)
Collecting scikit-learn>=0.22
Using cached scikit_learn-1.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (24.7 MB)
Collecting packaging
Using cached packaging-21.2-py3-none-any.whl (40 kB)
Collecting pandas>=0.21
Using cached pandas-1.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB)
Collecting xlrd<2.0
Using cached xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
Collecting kiwisolver>=1.0.1
Using cached kiwisolver-1.3.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)
Collecting cycler>=0.10
Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting pyparsing>=2.2.1
Using cached pyparsing-3.0.4-py3-none-any.whl (96 kB)
Collecting python-dateutil>=2.7
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pillow>=6.2.0
Using cached Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
Collecting llvmlite<0.38,>=0.37.0rc1
Using cached llvmlite-0.37.0-cp39-cp39-manylinux2014_x86_64.whl (26.3 MB)
Collecting numpy>=1.17.0
Using cached numpy-1.20.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.4 MB)
Collecting setuptools
Using cached setuptools-58.5.3-py3-none-any.whl (946 kB)
Collecting pyparsing>=2.2.1
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting pytz>=2017.3
Using cached pytz-2021.3-py2.py3-none-any.whl (503 kB)
Collecting six>=1.5
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting threadpoolctl>=2.0.0
Using cached threadpoolctl-3.0.0-py3-none-any.whl (14 kB)
Collecting pynndescent>=0.5
Using cached pynndescent-0.5.5-py3-none-any.whl
Collecting stdlib-list
Using cached stdlib_list-0.8.0-py3-none-any.whl (63 kB)
Collecting numexpr>=2.6.2
Using cached numexpr-2.7.3-cp39-cp39-manylinux2010_x86_64.whl (471 kB)
Installing collected packages: numpy, threadpoolctl, six, setuptools, scipy, llvmlite, joblib, scikit-learn, pytz, python-dateutil, pyparsing, pillow, numba, kiwisolver, cycler, xlrd, tqdm, stdlib-list, pynndescent, patsy, pandas, packaging, numexpr, natsort, matplotlib, h5py, umap-learn, tables, statsmodels, sinfo, seaborn, networkx, anndata, scanpy
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
poetry 1.1.11 requires packaging<21.0,>=20.4, but you have packaging 21.2 which is incompatible.
Successfully installed anndata-0.7.6 cycler-0.11.0 h5py-3.5.0 joblib-1.1.0 kiwisolver-1.3.2 llvmlite-0.37.0 matplotlib-3.4.3 natsort-8.0.0 networkx-2.6.3 numba-0.54.1 numexpr-2.7.3 numpy-1.21.1 packaging-21.2 pandas-1.3.4 patsy-0.5.2 pillow-8.4.0 pynndescent-0.5.5 pyparsing-3.0.4 python-dateutil-2.8.2 pytz-2021.3 scanpy-1.8.2 scikit-learn-1.0.1 scipy-1.7.1 seaborn-0.11.2 setuptools-58.5.3 sinfo-0.3.4 six-1.16.0 statsmodels-0.13.0 stdlib-list-0.8.0 tables-3.6.1 threadpoolctl-3.0.0 tqdm-4.62.3 umap-learn-0.5.2 xlrd-1.2.0
You could try installing all your packages in one line like this and see if the conflicts are resolved, pip install packaging scanpy. You could also try with your specific versions like this pip install packaging==20.9 scanpy==1.0 or whatever version you like. You can also try installing like this pip install package>=20.9 package2<1.9
You could also try using a package manager like conda or mamba, create a new environment and try installing the packages there. The package managers try to resolve conflicts like that.
When building a script in a docker container I need to install external libraries. One of them fails:
Step 2/6 : RUN pip install paho-mqtt logbook arrow requests ics
---> Running in 93d9144d6224
(...)
ERROR: ics 0.5 has requirement arrow<0.12,>=0.11, but you'll have arrow 0.15.2 which is incompatible.
Installing collected packages: paho-mqtt, logbook, six, python-dateutil, arrow, chardet, certifi, urllib3, idna, requests, ics
Successfully installed arrow-0.15.2 certifi-2019.9.11 chardet-3.0.4 ics-0.5 idna-2.8 logbook-1.5.2 paho-mqtt-1.4.0 python-dateutil-2.8.0 requests-2.22.0 six-1.12.0 urllib3-1.25.5
I do not understand this error:
the versions seem to be OK: 0.15.2 >= 0.11
despite the error the installation is "successful"
In any case (weather the installation is successful or not) this error breaks the docker build.
The main question would be why the error is there in the first place?
The sub-questions:
how to fix it?
if the build is successful, how to force at least temporarily the docker build (this is a home setup)
The whole build log in case there are other useful information:
Step 1/6 : FROM python:3.7-alpine
---> 39fb80313465
Step 2/6 : RUN pip install paho-mqtt logbook arrow requests ics
---> Running in 93d9144d6224
Collecting paho-mqtt
Downloading https://files.pythonhosted.org/packages/25/63/db25e62979c2a716a74950c9ed658dce431b5cb01fde29eb6cba9489a904/paho-mqtt-1.4.0.tar.gz (88kB)
Collecting logbook
Downloading https://files.pythonhosted.org/packages/6b/3f/f4e6693791efacc1282852fba5392da0649b19416b37422c5489f79a52ea/Logbook-1.5.2.tar.gz (85kB)
Collecting arrow
Downloading https://files.pythonhosted.org/packages/cc/f5/f618f8423fe674a60461e58683edfeead93f4bbf95b9fca0e9699e765b35/arrow-0.15.2-py2.py3-none-any.whl (40kB)
Collecting requests
Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
Collecting ics
Downloading https://files.pythonhosted.org/packages/3a/66/7844baa915da9a76ef7b7b6d93935cc1474688c6ea914b90dbe54d6f6f41/ics-0.5-py2.py3-none-any.whl
Collecting python-dateutil (from arrow)
Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
Collecting chardet<3.1.0,>=3.0.2 (from requests)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting certifi>=2017.4.17 (from requests)
Downloading https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl (154kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
Downloading https://files.pythonhosted.org/packages/81/b7/cef47224900ca67078ed6e2db51342796007433ad38329558f56a15255f5/urllib3-1.25.5-py2.py3-none-any.whl (125kB)
Collecting idna<2.9,>=2.5 (from requests)
Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
Collecting six>1.5 (from ics)
Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Building wheels for collected packages: paho-mqtt, logbook
Building wheel for paho-mqtt (setup.py): started
Building wheel for paho-mqtt (setup.py): finished with status 'done'
Created wheel for paho-mqtt: filename=paho_mqtt-1.4.0-cp37-none-any.whl size=48332 sha256=56275b1fa3496506436d27287c83cde7c59ec350292f87edd45f0248f8ef46e5
Stored in directory: /root/.cache/pip/wheels/82/e5/de/d90d0f397648a1b58ffeea1b5742ac8c77f71fd43b550fa5a5
Building wheel for logbook (setup.py): started
Building wheel for logbook (setup.py): finished with status 'done'
Created wheel for logbook: filename=Logbook-1.5.2-cp37-cp37m-linux_x86_64.whl size=66345 sha256=1a1f099a9baeaab15f43814c6506f3fc640c49add0fb8fafeb93397de9cd34b6
Stored in directory: /root/.cache/pip/wheels/c7/d6/22/9f6bd2884a48b215fdd9cbfa78671b51f4470dfd3d14ef701a
Successfully built paho-mqtt logbook
ERROR: ics 0.5 has requirement arrow<0.12,>=0.11, but you'll have arrow 0.15.2 which is incompatible.
Installing collected packages: paho-mqtt, logbook, six, python-dateutil, arrow, chardet, certifi, urllib3, idna, requests, ics
Successfully installed arrow-0.15.2 certifi-2019.9.11 chardet-3.0.4 ics-0.5 idna-2.8 logbook-1.5.2 paho-mqtt-1.4.0 python-dateutil-2.8.0 requests-2.22.0 six-1.12.0 urllib3-1.25.5
Removing intermediate container 93d9144d6224
---> 7a3f016d1374
Without seeing your Dockerfile we can't really see what you are doing; but
pip install arrow==0.11
instead of pip install arrow should fix the immediate problem.
If the commands in your RUN statements are separated with && you can change that to ; after the command whose error you want to ignore, and you can add || true at the end to make the entire RUN statement always succeed; but this is generally poor practice, and in this case, it's unlikely to produce a useful image anyway.
You have a module named ics which has dependency on the arrow module with version <0.12,>=0.11, these versions of the dependencies are specified when you build a python module. While building your docker image it is using arrow 0.15.2 from the cache, since it might be already installed on your computer.
Best way to deal with these types of errors is to define all your dependencies with their versions in a requirements.txt file and run pip install -r requirements.txt to install all in one go.
I can't say for sure why your build is failing though. You can try to uninstall the arrow module and reinstall the specified version.
I am part of a small team that is trying to install Python's 'fancyimpute' package. Three of us have different Windows machines. One of us has Mac.
fancyimpute's page says: 'Operating System :: OS Independent'.
My teammate has no problems installing it on his Mac: pip install fancyimpute works as it should.
When we, Windows users, try to do the same, we are getting this error:
"error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools"
One we've installed "Visual C++ 2015 Build Tools", we still can't install fancyimpute. The error we are getting is as following:
'NAN'
ecos/src/ecos.c(1093): warning C4013: '_set_output_format' undefined; assuming extern returning int
ecos/src/ecos.c(1093): error C2065: '_TWO_DIGIT_EXPONENT': undeclared identifier
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
Failed building wheel for ecos
Is it possible that it's a hopeless case for Windows machine owners? Or is there a solution?
I have just installed fancyimpute on windows 10 machine and it was successful. Can you please try running pip command from command prompt in case if you're doing it from pycharm console.
C:\Users\USER>pip install fancyimpute
Collecting fancyimpute
Downloading fancyimpute-0.2.0.tar.gz
Requirement already satisfied: six in c:\python27\lib\site-packages (from fancyimpute)
Collecting knnimpute (from fancyimpute)
Downloading knnimpute-0.1.0.tar.gz
Requirement already satisfied: numpy>=1.10 in c:\python27\lib\site-packages (from fancyimpute)
Requirement already satisfied: scipy in c:\python27\lib\site-packages (from fancyimpute)
Collecting cvxpy (from fancyimpute)
Downloading cvxpy-0.4.11-py2-none-any.whl (379kB)
100% |################################| 389kB 439kB/s
Requirement already satisfied: scikit-learn>=0.17.1 in c:\python27\lib\site-packages (from fancyimpute)
Collecting downhill (from fancyimpute)
Downloading downhill-0.4.0-py2.py3-none-any.whl
Collecting climate (from fancyimpute)
Downloading climate-0.4.6.tar.gz
Collecting theano (from fancyimpute)
Downloading Theano-0.9.0.tar.gz (3.1MB)
100% |################################| 3.1MB 65kB/s
Collecting ecos>=2 (from cvxpy->fancyimpute)
Downloading ecos-2.0.4-cp27-none-win32.whl (44kB)
100% |################################| 51kB 96kB/s
Collecting CVXcanon>=0.0.22 (from cvxpy->fancyimpute)
Downloading CVXcanon-0.1.1.tar.gz (694kB)
100% |################################| 696kB 105kB/s
Requirement already satisfied: toolz in c:\python27\lib\site-packages (from cvxpy->fancyimpute)
Collecting fastcache (from cvxpy->fancyimpute)
Downloading fastcache-1.0.2.tar.gz
Collecting multiprocess (from cvxpy->fancyimpute)
Downloading multiprocess-0.70.5.zip (1.5MB)
100% |################################| 1.5MB 73kB/s
Collecting scs>=1.1.3 (from cvxpy->fancyimpute)
Downloading scs-1.2.7.tar.gz (280kB)
100% |################################| 286kB 107kB/s
Requirement already satisfied: click in c:\python27\lib\site-packages (from downhill->fancyimpute)
Collecting plac (from climate->fancyimpute)
Downloading plac-0.9.6-py2.py3-none-any.whl
Collecting dill>=0.2.6 (from multiprocess->cvxpy->fancyimpute)
Downloading dill-0.2.7.1.tar.gz (64kB)
100% |################################| 71kB 109kB/s
Collecting pyreadline>=1.7.1 (from dill>=0.2.6->multiprocess->cvxpy->fancyimpute)
Downloading pyreadline-2.1.zip (109kB)
100% |################################| 112kB 127kB/s
Building wheels for collected packages: fancyimpute, knnimpute, climate, theano, CVXcanon, fastcache, multiprocess, scs, dill, pyreadline
Running setup.py bdist_wheel for fancyimpute ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\46\9d\78\a49d65bb66557f705de636d1a21f9310993a4342670add3f9e
Running setup.py bdist_wheel for knnimpute ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\66\a0\1c\ed41cf540d0bd6d4ae368e9554b77753da154e7d8974c4435f
Running setup.py bdist_wheel for climate ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\90\1f\17\51ca46dd7c3b0be854c63468b50b3d24c443d149244cc4bb19
Running setup.py bdist_wheel for theano ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\d5\5b\93\433299b86e3e9b25f0f600e4e4ebf18e38eb7534ea518eba13
Running setup.py bdist_wheel for CVXcanon ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\1b\f6\dd\14f66c64621bddd6b92a3cfc995fa2a21b134fcf4122402b30
Running setup.py bdist_wheel for fastcache ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\1b\ce\51\0614c8aaab5c0893ed5a2098a15673a4949cba59cfa04ceace
Running setup.py bdist_wheel for multiprocess ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\28\ef\9f\5cc70b5d92fc4641b68dc23b3583f2b6ec1d153cb71985aeaf
Running setup.py bdist_wheel for scs ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\de\bb\5c\5efaf95dbe8b2a87650a9a1061aeefcd5b16353b98afbac789
Running setup.py bdist_wheel for dill ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\e5\88\fe\7e290ce5bb39d531eb9bee5cf254ba1c3e3c7ba3339ce67bee
Running setup.py bdist_wheel for pyreadline ... done
Stored in directory: C:\Users\USER\AppData\Local\pip\Cache\wheels\9a\c7\45\fd424eb3d7875d7a61221accd593e17c7953ed5ece5ee60be9
Successfully built fancyimpute knnimpute climate theano CVXcanon fastcache multiprocess scs dill pyreadline
Installing collected packages: knnimpute, ecos, CVXcanon, fastcache, pyreadline, dill, multiprocess, scs, cvxpy, theano, downhill, plac, climate, fancyimpute
Successfully installed CVXcanon-0.1.1 climate-0.4.6 cvxpy-0.4.11 dill-0.2.7.1 downhill-0.4.0 ecos-2.0.4 fancyimpute-0.2.0 fastcache-1.0.2 knnimpute-0.1.0 multiprocess-0.70.5 plac-0.9.6 pyreadline-2.1 scs-1.2.7 theano-0.9.0
I found the solution here: Fancyimpute pip install error
Solved the problem by manually downloading the appropriate .whl file (Python version and Windows architecture): Windows binaries
Navigated to the downloaded file (in terminal) and ran pip install filename.whl.
I tried to install PyLint. When installing I saw the following:
Collecting pylint
Downloading pylint-1.6.5-py2.py3-none-any.whl (577kB)
100% |████████████████████████████████| 583kB 655kB/s
Collecting six (from pylint)
Using cached six-1.10.0-py2.py3-none-any.whl
Collecting isort>=4.2.5 (from pylint)
Downloading isort-4.2.5-py2.py3-none-any.whl (40kB)
100% |████████████████████████████████| 40kB 737kB/s
Collecting mccabe (from pylint)
Downloading mccabe-0.6.1-py2.py3-none-any.whl
Collecting configparser; python_version == "2.7" (from pylint)
Downloading configparser-3.5.0.tar.gz
Collecting backports.functools-lru-cache; python_version == "2.7" (from pylint)
Downloading backports.functools_lru_cache-1.3-py2.py3-none-any.whl
Collecting astroid<1.5.0,>=1.4.5 (from pylint)
Downloading astroid-1.4.9-py2.py3-none-any.whl (213kB)
100% |████████████████████████████████| 215kB 713kB/s
Collecting lazy-object-proxy (from astroid<1.5.0,>=1.4.5->pylint)
Downloading lazy-object-proxy-1.2.2.tar.gz
Collecting wrapt (from astroid<1.5.0,>=1.4.5->pylint)
Downloading wrapt-1.10.8.tar.gz
Building wheels for collected packages: configparser, lazy-object-proxy, wrapt
Running setup.py bdist_wheel for configparser ... done
Stored in directory: /Users/dkanesha/Library/Caches/pip/wheels/1c/bd/b4/277af3f6c40645661b4cd1c21df26aca0f2e1e9714a1d4cda8
Running setup.py bdist_wheel for lazy-object-proxy ... done
Stored in directory: /Users/dkanesha/Library/Caches/pip/wheels/06/d4/af/71508d0c69292f8c369ba3ae83cd85fabcd6956fd5709633b4
Running setup.py bdist_wheel for wrapt ... done
Stored in directory: /Users/dkanesha/Library/Caches/pip/wheels/19/8a/01/20cf74c3f38d49ef8e9b9aa7ffd38cefff79bad9f6f2c651f0
Successfully built configparser lazy-object-proxy wrapt
Installing collected packages: six, isort, mccabe, configparser, backports.functools-lru-cache, lazy-object-proxy, wrapt, astroid, pylint
Successfully installed astroid-1.4.9 backports.functools-lru-cache-1.3 configparser-3.5.0 isort-4.2.5 lazy-object-proxy-1.2.2 mccabe-0.6.1 pylint-1.6.5 six-1.10.0 wrapt-1.10.8
Can I uninstall the packages mentioned here Installing collected packages: six, isort, mccabe, configparser, backports.functools-lru-cache, lazy-object-proxy, wrapt, astroid, pylint to restore to the previous state, or could the "Installing collected packages" refer to packages previously installed too?
There are two useful packages to deal with it.
Use the package pip-autoremove to uninstall package and its dependencies. You can also use pipdeptree to display a tree relationship of all installed packages.
pip will pretty explicitly tell you what exactly it does. If required packages are already installed, they won't be listed in the "successfully installed" list and it will say "requirement already satisfied" instead. If a dependency was upgraded during the installation, it will explicitly say that it found a previous version, that it uninstalled the previous version and that it installed a new version.
So, yes, in your case it does not look like it upgraded any old packages and purely installed new packages, so uninstalling all those should revert you to your previous state.