Ask Your Question
3

Sage pip not compatible with PyPI

asked 2017-09-07 07:13:34 +0100

paragon gravatar image

updated 2017-09-07 22:20:38 +0100

I want to make a PyPI package for sage, similar to

https://pypi.python.org/pypi/darmonpo...

or

https://pypi.python.org/pypi/surface_...

that can be installed by anyone by typing one line. But trying these out, the installation instructions don't work! I get an error:

$~/SageMath/sage -pip install surface_dynamics
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting surface_dynamics
  Could not fetch URL https://pypi.python.org/simple/surface-dynamics/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement surface_dynamics (from versions: )
No matching distribution found for surface_dynamics

I believe that it is because sage is using pip 8.x, and a later version is required for PyPI. If I try installing surface_dynamics with using pip 9.01, it downloads it (but gives an error later because it is not in sage), so I do think the version is a problem.

I just updated to sage 8.0. Is this planning to be fixed soon? If there is a workaround for me, I guess that is nice, but it defeats the purpose of getting my code hosted on PyPI if I still have to give the users complicated instructions.

Or maybe my sage installation is broken? Do others get the same error?

EDIT: In light of eric_g's answer, I tried installing the developer version of 8.1. Indeed the sage pip is now 9.01, but the same error persists. So I guess my theory about the versions is wrong. It must be something else funny with the sage pip?

edit retag flag offensive close merge delete

Comments

In order to get SSL support in pip, you must recompile pipand Sage's Python interpreters after installing the development library(ies ?) for OpenSSL. It's usually easier and faster to start from scratch (i. e. make distclean).

Also, I seem to remember that Mac OS X plays shenanigans with SSL, but I don't have details in ming. I have ranted a bit about OpenSSL support on sage-devel, and there is a few ickets on Trac. Look for Dima Pasechnik's comments : he knows what he's talking about...

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 2019-09-20 10:11:05 +0100 )edit

4 Answers

Sort by ยป oldest newest most voted
4

answered 2017-09-09 18:40:59 +0100

slelievre gravatar image

updated 2018-03-02 15:12:47 +0100

The error you report, as @tmonteil answered, comes from using a Sage built without SSL support.

Lack of SSL support won't let you pip-install using

sage -pip install name_of_the_package

Instead, you can download it, extract it, and do

sage -pip install /path/to/the/downloaded/package

In addition, you could install openssl into your Sage installation as follows:

sage -i openssl
sage -f python2
sage -i pyopenssl

after which you should be able to sage -pip install any package you want.

edit flag offensive delete link more

Comments

Sage 9.0 switched to Python 3, so if you have a newer version of Sage use sage -f python3 instead of sage -f python2

BrentBaccala gravatar imageBrentBaccala ( 2020-08-12 01:12:31 +0100 )edit
2

answered 2017-09-09 14:53:43 +0100

tmonteil gravatar image

updated 2017-09-09 14:54:34 +0100

It is likely you complied Sage's Python without SSL support. Could you try to recompile it with libssl-dev package installed (or similar package depending on your distro) ?

edit flag offensive delete link more

Comments

I'm using a MacBook with OS X 10.12.5. Apparently it doesn't come with SSL support: https://github.com/saghul/pythonz/iss.... I have now installed opensll and rebuild sage 8.0. I still get the same error. At least I know that it is a problem with my computer and not with sage.

paragon gravatar imageparagon ( 2017-09-12 18:52:48 +0100 )edit
2

answered 2017-09-07 10:55:41 +0100

eric_g gravatar image

pip 9.0.1 will be available in Sage 8.1 (cf. the ticket #23615, which has been merged in Sage 8.1.beta4). If you want to use it right now, you have to use the develop version of Sage:

git clone https://github.com/sagemath/sage.git
cd sage
git checkout -b develop
git pull origin develop
MAKE="make -j8" make
edit flag offensive delete link more

Comments

Thank you! This is what I was hoping for. But unfortunately it didn't fix the problem (see edit).

paragon gravatar imageparagon ( 2017-09-07 22:20:02 +0100 )edit
0

answered 2019-09-20 02:15:18 +0100

geze gravatar image

I had a similar result when installing psycopg2 in my own computer, and sudoing pip install --upgrade psycopg2 solve my problem. I did not try without the option --upgrade for sage, but I also ran sage -pip install --upgrade pyscopg2 and no problema!

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2017-09-07 07:13:34 +0100

Seen: 3,925 times

Last updated: Sep 20 '19