packageNotFound when trying to install web3.py - python

I have multiple issues installing packages with having both Python and Anaconda installed. I have now got a clean install of anaconda and previous PIP installations removed.
I am unable to install web3.py still, when installing via the Anaconda environment / VScode I receive this error:
PackagesNotFoundError: The following packages are not available from
current channels:
web3
Current channels:
https://conda.anaconda.org/mamba/osx-arm64
https://conda.anaconda.org/mamba/noarch
https://conda.anaconda.org/conda-forge/osx-arm64
https://conda.anaconda.org/conda-forge/noarch
To search for alternate channels that may provide the conda package
you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
I can see it is available but receiving this message. Would really appreciate any insight.
I was expecting to install without issue via $
conda install -c conda-forge web3

Conda Forge does not default (yet) to building packages for osx-arm64 platform. Instead, users must request an osx-arm64 build by adding it to the migration list via a Pull Request (see documentation). This has now been done for web3, but will take time to get approved and processed.
In the meantime, alternatives are:
Install from PyPI.
Emulate an osx-64 environment using CONDA_SUBDIR environment variable. Similar procedure as this answer.

Related

Conflict resolution in pip vs. conda

I assume both pip and conda, despite differences, are package managers and check for consistency of packages installed in an environment! In my case though, I have a list of requirements.txt, on top of python=3.6. In my conda virtual environment, I installed them one-by-one. The strange thing is that when locating some packages in anaconda.org channels and installing them with conda install, conda complains! An example is when I tried to install statistics=1.0.3.5, and I got this message on terminal:
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:
Specifications:
- statistics=1.0.3.5 -> python[version='2.7.*|<3|>=2.7,<2.8.0a0']
Your python: python=3.6
However, when I did it with pip, it worked!
Why is that?
Am I going to bump into a problem down the road with this package?
I read this Stackoverflow post about the difference between pip and conda and tried to understand it from the doc (Although not that successful).
When working with conda virtual environments, installing packages with pip should be the last resort. If a package isn't available through the default channel, try installing from conda-forge first.
The difference between conda and pip is huge (not to mention virtual environments): Conda aims to install a consistent set of packages - which results in an optimization problem - while pip just installs dependencies, no matter if that is in conflict with any previously installed package.
However, since you are writing unit tests with your code you'll immediatly realize if you bump into a problem.

How to install textatistic package

I want to install textatistic package on my Jupyter/ Anaconda/ Windows64 platform.
I tried to run conda install -c conda-forge textatistic from Anaconda command prompt as an administrator.
It is throwing up error - PackagesNotFoundError: The following packages are not available from current channels:.
Appreciate inputs.
I tried this myself and it gave the same error. I then followed the instructions from the error:
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
According to https://anaconda.org, the package textatastic doesn't exist.

Difference between "conda install" with "-c anaconda" and without it

I am new to python and I am trying to install new packages in Anaconda. I am using anaconda prompt and Windows 10.
Can you please explain what is the difference between conda install with -c anaconda and without it? For example conda install -c anaconda mysqlclient and conda install mysqlclient.
Which is better to use when and why?
conda, as you know is a package manager that can install packages to your machine. If you do conda install, it needs a place to search for these packages to download them from. For conda, this is solved with the concept of channels, which are, as #David Kabii has pointed out, like repositories that can exist either locally/a network location or be a url. By default, conda install will try to download packages from repo.anaconda.com, specifically on windows, these locations are searched by default:
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/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
More information on the difference can be found in the docs on using default repositories.
Now if you go to www.anaconda.org and search for a package, let's say numpy, you will see that it is available from different channels. You should only worry about those in case a package is not available from the default channels. This you can also check by running conda search <package name> which will list all available versions in the currently configured channels.
Coming to your question. The -c options specifies an additional channel to search first which is needed if a package is not available from default channels. E.g. some bioinformatics tools are only available by specifying -c bioconda. For those packages that are available from the default channels you should not specify anything and using -c anaconda will make no difference, as the anaconda channel is only a mirror of the default ones and should not be used (see the channel description):
This channel is used internally for mirroring. You should very much prefer https://repo.anaconda.com, which is conda's default and needs no "-c" setting.
When you use the -c option, you are specifying the channel from which to get the package. The default is -c anaconda, so they are similar. To use packages built locally, you would use -c local.
Here is a link for more info:
Docs explaining usage of conda install

How do I install the latest version of Graph API in Conda?

I need to use the Graph API to pull some data from Facebook and I'm using Conda for my package management. However, when I try to install it from Conda it gives me an error message saying:
PackagesNotFoundError: The following packages are not available from the current channels:
- facebook-sdk
Searching on Google sent me to a Conda package which I used but the version of the API on that is very old and the link is from 2011.
Can someone tell me how to install the latest version of the Graph API using Conda? I'm able to get it to install from PyPI install just fine.
There really isn't a reliable Anaconda Cloud channel to get the Facebook SDK for Python (which itself is a third-party open-source project). Instead, just follow the recommended installation from the package documentation, but make sure to activate your environment first. Also, install the prerequisites (looks like it only needs requests) through Conda first.
conda activate myenv
conda install requests
pip install -e git+https://github.com/mobolic/facebook-sdk.git#egg=facebook-sdk
Just be aware that, even though it is supported, installing things from PyPI into a Conda env can be lead to an unstable env (see "Using Pip in a Conda Environment"). I'd highly encourage you to create a separate env for this project (e.g., conda create -n fbenv python=3.7 requests).

How to install R packages that are not available in "R-essentials"?

I use an out-of-the-box Anaconda installation to work with Python. Now I have read that it is possible to also "include" the R world within this installation and to use the IR kernel within the Jupyter/Ipython notebook.
I found the command to install a number of famous R packages:
conda install -c r r-essentials
My beginner's question:
How do I install R packages that are not included in the R-essential package? For example R packages that are available on CRAN. "pip" works only for PyPI Python packages, doesn't it?
Now I have found the documentation:
This is the documentation that explains how to generate R packages that are only available in the CRAN repository:
https://www.continuum.io/content/conda-data-science
Go to the section "Building a conda R package".
(Hint: As long as the R package is available under anaconda.org use this resource. See here: https://www.continuum.io/blog/developer/jupyter-and-conda-r)
alistaire's answer is another possibility to add R packages:
If you install packages from inside of R via the regular install.packages (from CRAN mirrors), or devtools::install_github (from GitHub), they work fine. #alistaire
How to do this:
Open your (independent) R installation, then run the following command:
install.packages("png", "/home/user/anaconda3/lib/R/library")
to add new package to the correct R library used by Jupyter, otherwise the package will be installed in /home/user/R/i686-pc-linux-gnu-library/3.2/png/libs mentioned in .libPaths() .
To install other R Packages on Jupyter beyond R-essentials
install.packages('readr', repos='http://cran.us.r-project.org')
One issue is that the specific repository is the US.R-Project (as below). I tried others and it did not work.
N.B. Replace readr with any desired package name to install.
Here's a conda-centric answer. It builds on Frank's answer and the continuum website: https://www.continuum.io/content/conda-data-science with a bit more detail.
Some packages not available in r-essentials are still available on conda channels, in that case, it's simple:
conda config --add channels r
conda install r-readxl
If you need to build a package and install using conda:
conda skeleton cran r-xgboost
conda build r-xgboost
conda install --use-local r-xgboost
that last line is absent in the continuum website because they assume it gets published to anaconda repository first. Without it, nothing will be put in the envs/ directory and the package won't be accessible to commandline R or Jupyter.
On a mac, I found it important to install the Clang compiler for package builds:
conda install clangxx_oxs-64
I found an easy workaround. I suppose that you have an RStudio IDE for you R. It is weird to use RStudio for that, but I tried straight from R in my terminal and it didn't work. So, in RStudio console, just do the usual adding the path to your anaconda directory (in OSX,'/Users/yourusernamehere/anaconda/lib/R/library')
So, for example,
install.packages('package','/Users/yourusernamehere/anaconda/lib/R/library')
I feel ashamed to post such a non-fancy answer, but that is the only one that worked for me.
Adding it here so other beginners already working with Jupyter notebooks with Python and interested in using it with R: additional packages available for Anaconda can be installed via terminal using the same command used to instal the essential packages.
Install r-essentials
conda install -c r r-essentials
Install microbenchmark (infrastructure to accurately measure and compare the execution time of R expressions)
conda install -c r r-microbenchmark
To install a CRAN package from the command line:
R --slave -e "install.packages('missing-package', repos='http://cran.us.r-project.org')"
I had a problem when trying to install package from github using install_github("user/package") in conda with r-essentials. Errors were multiple and not descriptive.
Was able to resolve a problem using these steps:
download and unzip the package locally
activate correct conda environment (if required)
run R from command line
library(devtools)
install('/path/to/unzipped-package')
Command failed due to missing dependancies, but now I know what's missing!
run install.packages('missing-package', repos='http://cran.us.r-project.org') for all dependancies
run install('/path/to/unzipped-package') again. Now it should work!
Use Conda Forge
Five years out from the original question, I'd assert that a more contemporary solution would simply be: use Conda Forge. The Conda Forge channel not only provides broader coverage of CRAN, but also has a simple procedure and great turnaround time (typically under 24 hours) for adding a missing CRAN package to the channel.
Start from Conda Forge
I'd recommend using Conda Forge for the full stack, and use a dedicated environment for each R version you require.
conda create -n r41 -c conda-forge r-base=4.1 r-irkernel ...
where ... is whatever additional packages you require (like r-tidyverse). The r-irkernel package is optional, but included here because OP mentions using R in Jupyter.
If your environment with Jupyter (which should be in a separate environment) also has nb_conda_kernels installed, then this environment will automatically be discovered by Jupyter.
Install from Conda Forge
Generally, all R packages on CRAN have a r- prefix to the package name on Conda Forge. So, if your package of interest is pkgname, first try
conda install -n r41 -c conda-forge r-pkgname
If the package is not available, then proceed to either add it or request it.
Submit a CRAN package with Conda R Skeleton Helper
There is a helpful script collection, called conda_r_skeleton_helper for creating new Conda Forge recipes for CRAN packages. There are clear directions in the README.
In broad strokes, one will
clone the conda_r_skeleton_helper repository
edit the packages.txt file to include r-pkgname
run the script to generate the recipe
fork and clone the conda-forge/staged-recipes
copy the new recipe folder to the stage-recipes/recipes folder
commit changes, push to the fork, then submit a Pull Request back to Conda Forge
This takes maybe ~15 mins of work. Once submitted, most packages take under 24 hours to get accepted, feedstocked, and deployed to the Conda Forge channel. Once the feedstock is up and running, the Conda Forge infrastructure uses a bot to auto-detect version updates, generate new pull requests, and even auto-merge Pull Requests that successfully build. That is, maintainers have a very minimal workload, and if there are issues, a team is available to help out.
File a Package Request
For users uncomfortable with creating and maintaining a Conda Forge build, packages can be requested on Conda Forge's staged-recipes repository by filing a new Issue. There is a template for Package Request, that includes some information fields to be filled in.
Install rpy2 with conda and add following line in your Jupyter notebook.
%load_ext rpy2.ipython
In next chunks, you can simply run any r code by specifying %R
Below is my favorite method to install and/or load r package
%R if (!require("pacman")) install.packages("pacman")
%R pacman::p_load(dplyr, data.table, package3, package4)
p_load argument will install + load the package if it's not in your lib else it will simply load it.
Someone suggested a not so elegant way around it, but actually it doesn't matter as long as it works fine.
install.packages('package','/Users/yourusernamehere/anaconda/lib/R/library')
I spent almost an entire morning looking for an answer to this problem. I was able to install the libraries on RStudio but not on Jupyter Notebook (they have different versions of R) The above solution "almost" worked, it's just that I found the Jupyter Notebook was trying to install in a different directory, and it will report what directory. So I only changed that and it worked as a charm... thanks to Dninhos
What worked for me is install.packages("package_name", type="binary").
None of the other answers have worked.

Categories