简体   繁体   中英

Package Python3.7 is not available

So I have python 3.8 and pip for it, but I want to install stable python 3.7 and pip for it also. But when I try sudo apt-get install python3.7 It says package is not available but is referred to another package. Help please Error:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python3.7 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'python3.7' has no installation candidate

I tried doing the below steps in an official docker image of Kali Linux. It should work on the desktop as well.

apt-get update
apt-get install -y build-essential openssl openssl-dev* wget curl
wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz
tar -xvf Python-3.7.8.tgz
cd Python-3.7.8
./configure --enable-shared
make 
make test
make install

# Steps from here are to enable other libraries in linux to 
# access the shared python libraries.

cd /usr/local/lib/
cp libpython3.so /usr/lib64/
cp libpython3.so /usr/lib
cp libpython3.7m.so.1.0 /usr/lib64/
cp libpython3.7m.so.1.0 /usr/lib/
cd /usr/lib64
ln -s libpython3.7m.so.1.0 libpython3.7m.so
cd /usr/lib
ln -s libpython3.7m.so.1.0 libpython3.7m.so

Done, python3.7 is installed.

root@fe794c7ff15e:~# python3
Python 3.7.8 (default, Aug 15 2020, 16:26:34)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

I tried creating a python virtual environment with this install. It worked properly. I was able to install pip packages as well.

(testvirtual) root@fe794c7ff15e:~# pip install flask
Collecting flask
  Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
     |████████████████████████████████| 94 kB 404 kB/s 
Collecting Jinja2>=2.10.1
  Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 10.4 MB/s 
Collecting click>=5.1
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 165 kB/s 
Collecting Werkzeug>=0.15
  Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
     |████████████████████████████████| 298 kB 11.9 MB/s 
Collecting itsdangerous>=0.24
  Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting MarkupSafe>=0.23
  Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (27 kB)
Installing collected packages: MarkupSafe, Jinja2, click, Werkzeug, itsdangerous, flask
Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0

Default Python version in Ubuntu nowadays is 3.8 which is per-installed. While it looks like older version of spark like 2.x versions require Python version 3.7. I ran into same issue and I did the below

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7

Updated bashrc to point PYSPARK_PYTHON environment variable to python3.7 installed above like below

export PYSPARK_PYTHON=/usr/bin/python3.7
source ~/.bashrc

The following commands seem to work, but bear in mind the disclaimer about the deadsnakes PPA :

[T]here's no guarantee of timely updates in case of security problems or other issues. If you want to use them in a security-or-otherwise-critical environment (say, on a production server), you do so at your own risk.

But, if you really want to do this:

apt update
apt install python3 python3-pip software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt install python3.7

Here are the steps I follow when starting a new Python project:

First I decide on a Python release. Let's say you want to work with Python 3.7.8.

To install a specific release, I use pyenv . It's on gitbug and use this script to install it.

After installing pyenv you should cd to the place your code will be and enter pyenv install 3.7.8 and pyenv local 3.7.8 which will make sure that the Python 3.7.8 environment will be created at that location.

Then you install poetry : curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python .

After poetry is installed (use poetry -V to see if it works), you can run poetry init to create a pyproject.toml file.

You can add new dependencies like this: poetry add requests .

And you can enter that environment via poetry shell .

Now your using your new project in your specific 3.7.8 python version using your dependencies in a separate shell.

None of these things worked for me to install python3.7

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM