Custom conda sub channel - anaconda

Trying to setup remote repository for https://anaconda.org/MOSEK/mosek but that URL is not playing nice and unable to find what the conda manager would redirect to when connecting to sub channels by default.
What's the remote URL to add for these custom / sub channels from Anaconda?

To proxy Anaconda Cloud (anaconda.org) please use https://conda.anaconda.org as the remote repository URL.
Make sure you are adding it as channel to .condarc for example:
channels:
- http://admin:password#localhost:8081/artifactory/api/conda/anaconda.org
Or better aggregating all the remote Conda repositories under a single virtual Conda repository and adding it as your default channel.

Conda will resolve Anaconda user channels by name. That is, if you just do
conda config --add channels MOSEK
it will add your channel to those that are searched (i.e., to .condarc). For example, you can now simply run
conda install mosek
If you set this up, and then check conda info, you will see the associated URLs:
https://conda.anaconda.org/MOSEK/osx-64
https://conda.anaconda.org/MOSEK/noarch
The subdirectories here depend on the platform of your machine.
If you don't want to add the channel to your full configuration, but just install specific packages, you would run
conda install MOSEK::mosek
or
conda install -c MOSEK mosek

Related

Conda proxyeroor when shadowsocks opening

I tried to using conda to install tensorflow, but conda show an ProxyError when shadowsocks opening. Though I have configured the proxy_servers in .condarc with the http:\\localhost:port, it did not work. Meanwhile, the direct mode didn't work too. Only I turn off the Shadowsocks, can conda link to channels.
Hers is the Error Message.
ProxyError: Conda cannot proceed due to an error in your proxy configuration. Check for typos and other configuration errors in any '.netrc' file in your home directory, any environment variables ending in '_PROXY', and any other system-wide proxy configuration settings.
How can I use conda normally without turning off shadowsocks?

Require Jupyter Password across all Conda Environments

I am looking to allow users on a cluster to set up their own conda environments.
However, across all users, I want to force them to use a password to log in to Jupyter, regardless of whether or not they are launching from their own conda environment or from the root environment. I know I can globally set conda parameters by modifying the .condarc file in the root Anaconda directory. Is there an equivalent file for globally requiring jupyter password use/setting jupyter configs?
You do not want users to launch their own notebook, if you have a case with multiple users using notebooks you should use JupyterHub. JupyterHub is your solution; JupyterHub has been developed for that, and not using JupyterHub will lead to the same pains a Parsing HTML with RegEx.
JupyterHub works with Containers, if you use container, but works also if you only have conda envs, or just system Python. If you have centralized auth (OAuth/LDAP) JupyterHub hook into that, if you prefer PAM, PAM work. If you have SLURM/MPI, JupyterHub hook into that. If you need to use SSH, JupyterHub can undersand it. There is a full org on GitHub conveniently also named JupyterHub of plugins for JupyterHub to bend it to your will and needs... and if you have a specific case note covered, open a bug report or write a plugin that cover yours, and maybe later it can be added to the org !
So I believe JupyterHub is what you are looking for.
And also, you shouldn't install the notebook in each environment. The notebook server should only be installed once system wide (or once per users sometime). You should only install ipykernel in each env.

conda update CondaHTTPError: HTTP None

Midway through running Conda Update --all, the update stalled. Multiple packages had been updated. Now, when I run conda update --all or conda update conda, I get this response:
(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda update conda
Fetching package metadata ...
CondaHTTPError: HTTP None None for url <None>
Elapsed: None
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),),)
I've repeated conda update conda over multiple days, with no change in results. I can see there is no HTTP, however conda info --a shows channel URLs.
(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda info -a
Current conda install:
platform : win-64
conda version : 4.3.13
conda is private : False
conda-env version : 4.3.13
conda-build version : 2.1.5
python version : 3.5.3.final.0
requests version : 2.13.0
root environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3 (writable)
default environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3
envs directories : C:\Users\*****\AppData\Local\Continuum\Anaconda3\envs
C:\Users\*****\AppData\Local\conda\conda\envs
C:\Users\*****\.conda\envs
package cache : C:\Users\*****\AppData\Local\Continuum\Anaconda3\pkgs
C:\Users\*****\AppData\Local\conda\conda\pkgs
channel URLs : https://conda.anaconda.org/anaconda-fusion/win-64
https://conda.anaconda.org/anaconda-fusion/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
config file : C:\Users\*****\.condarc
offline mode : False
user-agent : conda/4.3.13 requests/2.13.0 CPython/3.5.3 Windows/7 Windows/6.1.7601
How do I get conda update to call a correct HTTP address?
My original answer got flagged as duplicate because I answered a similar question with the same answer, I wasn't aware that this is not allowed. I have marked my other response as a duplicate. Hopefully, this stays up!
I almost spent two days running in circles trying all the solutions I could find on the Internet, but here is what worked for me.
So, CondaHTTPError aka SSL module is not available error is caused by the missing/misplacement of libcrypto file in anaconda3/DLLs folder:
Tl;dr:
From anaconda3\Library\bin copy below files and paste them in anaconda3/DLLs:
- libcrypto-1_1-x64.dll
- libssl-1_1-x64.dll
Detailed answer:
Uninstall any Python versions you have (e.g. Python 3.7 or Python 3.8)
go to Control Panel--> Program and Features--> Select Python-->
uninstall
Uninstall any Anaconda versions you might have (e.g. Anaconda or miniConda)
For Anaconda:
go to Control Panel--> Program and Features--> Select Anaconda-->uninstall
For miniConda
go to Control Panel--> Program and Features--> Select miniconda--> uninstall
Delete any leftover Environment variables
go to Control Panel--> System--> Advanced System settings (on left side)--> in System Properties click on Environment Variables button--> in User Variable select Path and click the Edit button--> delete any path related to Anaconda, miniConda or Python.
E.g.
C:\Users\Bob \AppData\Local\Programs\Anaconda\...
C:\Users\Bob \AppData\Local\Programs\miniconda\...
b. If you don’t see any paths related to Anaconda, miniConda or Python; you are good to go.
Reboot your machine
Download the latest version of Anaconda
Run the Installer; keep all the default settings
Go to your anaconda3/library/bin folder:
E.g.C:\Users\Bob\AppData\Local\Continuum\anaconda3\Library\bin
Copy these files:
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
paste these in anaconda3/DLLs folder:
Reopen the Anaconda Prompt and test with any command that requires an Internet connection.
E.g.
conda update conda
Or with
conda update --all
Use the code below in your command line :
conda config --set ssl_verify no
Check if you're behind a corporate firewall that has an HTTPS/SSL proxy. If so, you may need to change the line in .condarc from ssl_verify: true to ssl_verify: false.
Or, as suggested by th0masb in the comments, using the command:
conda config --set ssl_verify false
Try to start Anaconda Prompt as Administrator (click right button of mouse before starting it), and make the same order.
Install the latest OpenSSl from this site: https://slproweb.com/products/Win32OpenSSL.html the current latest version is 1.1.1. Now I can install packages via pip and conda successfully.
I faced the same problem on Mac OS X and with Miniconda. After trying many of the proposed solutions for hours I found that I needed to correctly set Condas environment to use the Root certificate that my company provided rather than the generic ones that Conda provides.
Here is how I solved it:
Open Chrome, got to any website, click on the lock icon on the left
of the URL. Click on «Certificate» on the dropdown. In the next
window you see a stack of certificates. The uppermost (aka top line
in window) is the root certificate (e.g. Zscaler Root CA in my case,
yours will very likely be a different one).
Open Mac OS keychain, click on «Certificates» and choose among the many certificates the root certificate that you just identified. Export this to any folder of your choosing.
Convert this certificate with openssl: openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
For a quick check set your shell to acknowledge the certificate: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
To set this permanently open your shell profile (.bshrs or e.g. .zshrc) and add this line: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem. Now exit your terminal/shell and reopen. Check again.
You should be set and Conda should work fine.
PS: I'm aware that OP works on Windows. Nonetheless I leave this solution here because I think it can help solving the underlying root cause.
Type "conda config --show" to check the configuration information and make sure the addresses in the channels can be accessed normally.
I am using python 3.7.4 and I have just downloaded the conda and tried setting up the tensorflow but got http error.
I tried several steps mentioned above but it dint solve my problem.
I solved it by first activating conda. if you are using conda for first time you need to activate it using conda init command and then disable SSL verification conda config --set ssl_verify false
After above steps my tfp setup worked perfectly!!!
Download cacert.pem from https://curl.haxx.se/ca/cacert.pem,
save to /this/is/cert/path
open ~/.bashrc or any profile file you have
add export REQUESTS_CA_BUNDLE=/this/is/cert/path ...
open new terminal
conda update conda
You should check your .condarc file located in your Miniconda3/Anaconda3 root directory. There should be a line with just a hyphen. This line corresponds to the None channel. Deleting the line fixed the issue for me.
For the type of error above, you have to remove the proxy in environment variable. To do this follow this step :-
Open the Environment Variables window==>>>>>
To make many of the edits shown in this article, you first need to open the Environment Variables window. This guide explains how to open this window and shows you the basics about working with environment variables: Simple questions: What are environment variables in Windows?
If you want to skip reading it, one path that works the same in all versions of Windows is to open the Control Panel and go to “System and Security - > System.” There, click or tap the “Advanced system settings” link on the left. The System Properties window is opened. There click the Environment Variables button.
In this you have to select that one which have proxy , and delete ,then click Ok.
Now restart your Anaconda prompt.
It worked for me; I hope it also work for you.
Good luck
Enable 'k' flag in your conda update command. For example,
conda update anaconda-navigator -k
That will allow conda to make insecure connections to download packages. This is especially useful when you are behind a proxy server.
Try to type "conda update conda" from the (base) environment
The DLLs delivered by Anaconda3 are located here:
D:\Anaconda3\Library\bin
My workaround:
I have copied the following files
libcrypto-1_1-x64.*
libssl-1_1-x64.*
from D:\Anaconda3\Library\bin to D:\Anaconda3\DLLs.
And it works as a charm!
Just need to add binaries into you path, and done - it will take care about your openssl and everything.
C:\Users\{username}\Miniconda3\Library\bin
Search environment variables, in both User and System variables. Add the bin location in Path. Put the path at the end without changing anything. Save Apply and re-open your terminal. It should be now allowing you to install libraries easily.
I had the same error, and I tried most of the methods, but none of them worked. I checked the version of anaconda3 it was 4.2.0 which I realized was in beta which might be the reason.
I solved it by uninstalling everything and installing the latest version (5.1.0). It worked after that.
Refer link for details
Please update to the latest version of Navigator.
On Navigator click on the update button on the top right of the interface or
on the terminal type
$ conda update anaconda-navigator
After reading FAR too many posts running around in circles, I found a simple solution at least to my flavor of this problem, which should also shed some light on root cause.
Using sudo of same command (see below)
conda create -n tensorenviron
(output below)
Solving environment: done
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/r/osx-64/repodata.json.bz2>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.
SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/r/osx-64/repodata.json.bz2 (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))
sudo conda create -n tensorenviron
(output below)
Password:
Solving environment: done
## Package Plan ##
environment location: /Users/damonw/anaconda3/envs/tensorenviron
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate tensorenviron
#
# To deactivate an active environment, use:
# > source deactivate
#
I also faced the same problem and manually followed these steps to reach the desired result.
you can enter --> https://repo.anaconda.com/pkgs/main/win-64/
you can install packeges whatever you want and later :
you can write to Anaconda Prompt -->
conda install C:\Users\xxxx\Downloads\xlrd-1.2.0-py37_0.tar.bz2
Have a good luck!
Just in case anyone else is stuck behind a company proxy and the previous answers have not worked then try changing your proxies. Interestingly, I had already set my proxies in my environment variables but deleting them and then recreating them worked for some reason for me.
In my case, it was a proxy server setting that was blocking the installation. Switching the proxy server off and then connecting to a different WiFi got it working for me!
Tried everything to fix this issue. Hours of wasted time.
Reset Windows 10 firewall
downgraded/upgraded pip
downgraded/upgraded conda
tried new environments
installed pip from pypi (get-pip.py)
upgraded Debian on Windows environment
Nothing fixed it. Then noticed that other conda environments worked perfectly.
The issue was the pip cache was mangled if you reinstalled an environment with a name you used before and did some sort of upgrade of conda/distro in-between. Under linux i ran the following to fix the issue:
rm -rf $HOME/.cache
and looks like there is a similar setup for Windows based on the info you gave above.
I solved this by changing the proxy.
Change
https_proxy=https://xxx.xxx
to
https_proxy=http://xxx.xxx
make it works.

how to setup devpi-server for pypi pip searching

I am using a a devpi-server to locally cache and install pypi packages using pip. However when I search for packages using the devpi server I get the following error:
pypi.xyz.com is the name of the server
ProtocolError: <ProtocolError for pypi.xyz.com:33141/root/pypi/+simple/: 405 Method Not Allowed>
Note that install work just fine
Edit: I am using a proxy that is allowed to access pypi.xyz.com by setting http_proxy before calling the pip command. The proxy is working fine and allows access to the pypi.xyz.com server as you can run the pip install commands without any trouble.
pip.conf:
[global]
[install]
index-url = http://pypi.xyz.com:33141/root/pypi/+simple/
[search]
index = http://pypi.xyz.com:33141/root/pypi/+simple/
Adding the clarifications requested by #JanVlcinsky:
1. Installed devpi using pypi
2. None of the default settings were modified except the port change
3. Protocol Error is in the console when I use pip with the following environment variable set
export http_proxy=http://localhost:33128
Changed port to 33141 Just for some obfuscation security, try to avoid using defaults
It is an http_proxy (running locally using squid)
You can find the answer in the "using pip search" section of the official doc:
pip install -q -U devpi-web
devpi-server --stop
devpi-server --recreate-search-index
devpi-server --start

Install python library through closed network

I teach Python in a high school which has an environment closured by Windows Server and denies FTP transactions and the majority of internet-accessing behavior. However, I need to install Pygame in a virtual machine Linux's (Edubuntu) within that network.
When I do: sudo apt-get update it doesn't work, of course. So this way I can't either install software or update it.
Which gateways/IP do I need to ask to the Server Manager to open in order to be able to use repositories in Linux? Even if it's just for the moment of installing through the terminal.
If you dont have access to Internet or FTP then you have to create local repository with all packages. You have to point your apt-get to that local repository.
After that when you do apt-get update it will check in local repository and will update the packages.
If you dont have access to create repository, you have to ask your network manager to create local repo and give url for that.
If you only need some Python packages you can directly use pip for installing packages provided on PyPI. It's possible to create a partial PyPI Mirror using pypi-mirror. This way you don't need a direct connection to the internet.

Resources