Настройка Python окружения и pip
Содержание
- 1 Настройка Python окружения и pip
Настройка Python окружения и pip
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
2. Установка Python
Обновление системы
1. Обновите систему:
sudo apt update
2. Установите необходимые пакеты:
sudo apt install -y software-properties-common curl wget build-essential
Установка Python 3
1. Установите Python 3 и pip:
sudo apt install -y python3 python3-pip python3-venv python3-dev
2. Проверьте версии:
python3 --version
pip3 --version
3. Создайте символическую ссылку:
sudo ln -s /usr/bin/python3 /usr/bin/python
sudo ln -s /usr/bin/pip3 /usr/bin/pip
Установка Python через pyenv
1. Установите зависимости:
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl
2. Установите pyenv:
curl https://pyenv.run | bash
3. Добавьте pyenv в .bashrc:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
4. Перезагрузите терминал:
source ~/.bashrc
5. Установите Python через pyenv:
pyenv install 3.11.0
pyenv global 3.11.0
3. Настройка pip
Обновление pip
1. Обновите pip до последней версии:
python -m pip install --upgrade pip
2. Проверьте версию:
pip --version
Настройка pip конфигурации
1. Создайте директорию для конфигурации:
mkdir -p ~/.config/pip
2. Создайте файл конфигурации:
nano ~/.config/pip/pip.conf
3. Добавьте настройки:
[global] index-url = https://pypi.org/simple/ trusted-host = pypi.org pypi.python.org files.pythonhosted.org timeout = 120 retries = 5 [install] user = true
Настройка альтернативных репозиториев
1. Использование альтернативного индекса:
pip install -i https://pypi.douban.com/simple/ package_name
2. Настройка постоянного альтернативного репозитория:
pip config set global.index-url https://pypi.douban.com/simple/
3. Восстановление стандартного репозитория:
pip config set global.index-url https://pypi.org/simple/
4. Виртуальные окружения
Создание виртуального окружения
1. Создание окружения:
python -m venv myenv
2. Активация окружения:
source myenv/bin/activate
3. Деактивация окружения:
deactivate
Использование virtualenv
1. Установите virtualenv:
pip install virtualenv
2. Создайте виртуальное окружение:
virtualenv myenv
3. Активация окружения:
source myenv/bin/activate
Использование conda
1. Скачайте и установите Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
2. Создайте окружение:
conda create -n myenv python=3.11
3. Активация окружения:
conda activate myenv
4. Деактивация окружения:
conda deactivate
5. Управление пакетами
Установка пакетов
1. Установка пакета:
pip install package_name
2. Установка конкретной версии:
pip install package_name==1.0.0
3. Установка из requirements.txt:
pip install -r requirements.txt
4. Установка в режиме разработки:
pip install -e .
Создание requirements.txt
1. Сохранение зависимостей:
pip freeze > requirements.txt
2. Сохранение только основных зависимостей:
pip freeze | grep -v "^-e" > requirements.txt
3. Установка из requirements.txt:
pip install -r requirements.txt
Управление зависимостями
1. Просмотр установленных пакетов:
pip list
2. Просмотр информации о пакете:
pip show package_name
3. Поиск пакетов:
pip search keyword
4. Обновление пакетов:
pip install --upgrade package_name
5. Удаление пакетов:
pip uninstall package_name
6. Создание Python приложения
Простое веб-приложение с Flask
1. Установите Flask:
pip install flask
2. Создайте файл app.py:
nano app.py
3. Добавьте код:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' @app.route('/api/users') def get_users(): return {'users': ['John', 'Jane', 'Bob']} if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
4. Запустите приложение:
python app.py
API сервер с FastAPI
1. Установите FastAPI:
pip install fastapi uvicorn
2. Создайте файл main.py:
nano main.py
3. Добавьте код:
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str email: str @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/users") def get_users(): return [{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"}] @app.post("/users") def create_user(user: User): return {"id": 1, "name": user.name, "email": user.email}
4. Запустите сервер:
uvicorn main:app --host 0.0.0.0 --port 8000
7. Настройка веб-сервера
Настройка Nginx для Python
1. Установите Nginx:
sudo apt install -y nginx
2. Создайте конфигурацию:
sudo nano /etc/nginx/sites-available/python-app
3. Добавьте конфигурацию:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
4. Включите сайт:
sudo ln -s /etc/nginx/sites-available/python-app /etc/nginx/sites-enabled/
5. Перезапустите Nginx:
sudo systemctl restart nginx
Использование Gunicorn
1. Установите Gunicorn:
pip install gunicorn
2. Запустите приложение через Gunicorn:
gunicorn -w 4 -b 0.0.0.0:5000 app:app
3. Создайте systemd сервис:
sudo nano /etc/systemd/system/python-app.service
4. Добавьте конфигурацию:
[Unit] Description=Python Web Application After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/python-app Environment=PATH=/var/www/python-app/venv/bin ExecStart=/var/www/python-app/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app Restart=always [Install] WantedBy=multi-user.target
5. Запустите сервис:
sudo systemctl enable python-app
sudo systemctl start python-app
8. Управление зависимостями
Использование Poetry
1. Установите Poetry:
curl -sSL https://install.python-poetry.org | python3 -
2. Добавьте Poetry в PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
3. Инициализируйте проект:
poetry init
4. Добавьте зависимости:
poetry add flask
poetry add --dev pytest
5. Установите зависимости:
poetry install
6. Запустите приложение:
poetry run python app.py
Использование pipenv
1. Установите pipenv:
pip install pipenv
2. Инициализируйте проект:
pipenv install
3. Добавьте зависимости:
pipenv install flask
pipenv install --dev pytest
4. Активация окружения:
pipenv shell
5. Запуск приложения:
pipenv run python app.py
9. Тестирование
Настройка pytest
1. Установите pytest:
pip install pytest
2. Создайте тестовый файл:
nano test_app.py
3. Добавьте тесты:
import pytest from app import app @pytest.fixture def client(): app.config['TESTING'] = True with app.test_client() as client: yield client def test_hello_world(client): response = client.get('/') assert response.status_code == 200 assert b'Hello, World!' in response.data def test_get_users(client): response = client.get('/api/users') assert response.status_code == 200 assert 'users' in response.get_json()
4. Запустите тесты:
pytest
Настройка coverage
1. Установите coverage:
pip install coverage
2. Запустите тесты с покрытием:
coverage run -m pytest
3. Просмотр отчета:
coverage report
coverage html
10. Устранение неполадок
Частые проблемы
1. Проблемы с путями:
- Проверьте PATH:
echo $PATH
- Обновите .bashrc
- Перезапустите терминал
2. Проблемы с правами доступа:
- Используйте виртуальные окружения
- Не используйте sudo с pip
- Настройте пользовательскую установку
3. Проблемы с зависимостями:
- Очистите кэш pip:
pip cache purge
- Обновите pip:
python -m pip install --upgrade pip
- Используйте виртуальные окружения
Диагностика
1. Проверка версий:
python --version
pip --version
2. Проверка путей:
which python
which pip
3. Проверка установленных пакетов:
pip list
4. Проверка конфигурации pip:
pip config list
Заключение
Python окружение успешно настроено! Теперь вы можете разрабатывать и запускать Python приложения с правильным управлением зависимостями.
Для размещения ваших Python приложений на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных Python приложений
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой Python и оптимизацией производительности ваших приложений!