Настройка Python окружения и pip — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Настройка Python окружения и pip = == 1. Подготовка системы == * Войдите в систему под учетной з…»)
 
 
Строка 6: Строка 6:
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
  
== 2. Установка Python ===
+
== 2. Установка Python ==
  
 
=== Обновление системы ===
 
=== Обновление системы ===
  
 
1. Обновите систему:
 
1. Обновите систему:
<code>sudo apt update</code>
+
<pre>sudo apt update</pre>
  
 
2. Установите необходимые пакеты:
 
2. Установите необходимые пакеты:
<code>sudo apt install -y software-properties-common curl wget build-essential</code>
+
<pre>sudo apt install -y software-properties-common curl wget build-essential</pre>
  
 
=== Установка Python 3 ===
 
=== Установка Python 3 ===
  
 
1. Установите Python 3 и pip:
 
1. Установите Python 3 и pip:
<code>sudo apt install -y python3 python3-pip python3-venv python3-dev</code>
+
<pre>sudo apt install -y python3 python3-pip python3-venv python3-dev</pre>
  
 
2. Проверьте версии:
 
2. Проверьте версии:
<code>python3 --version</code>
+
<pre>python3 --version</pre>
<code>pip3 --version</code>
+
<pre>pip3 --version</pre>
  
 
3. Создайте символическую ссылку:
 
3. Создайте символическую ссылку:
<code>sudo ln -s /usr/bin/python3 /usr/bin/python</code>
+
<pre>sudo ln -s /usr/bin/python3 /usr/bin/python</pre>
<code>sudo ln -s /usr/bin/pip3 /usr/bin/pip</code>
+
<pre>sudo ln -s /usr/bin/pip3 /usr/bin/pip</pre>
  
 
=== Установка Python через pyenv ===
 
=== Установка Python через pyenv ===
  
 
1. Установите зависимости:
 
1. Установите зависимости:
<code>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</code>
+
<pre>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</pre>
  
 
2. Установите pyenv:
 
2. Установите pyenv:
<code>curl https://pyenv.run | bash</code>
+
<pre>curl https://pyenv.run | bash</pre>
  
 
3. Добавьте pyenv в .bashrc:
 
3. Добавьте pyenv в .bashrc:
<code>echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc</code>
+
<pre>echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc</pre>
<code>echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc</code>
+
<pre>echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc</pre>
<code>echo 'eval "$(pyenv init -)"' >> ~/.bashrc</code>
+
<pre>echo 'eval "$(pyenv init -)"' >> ~/.bashrc</pre>
  
 
4. Перезагрузите терминал:
 
4. Перезагрузите терминал:
<code>source ~/.bashrc</code>
+
<pre>source ~/.bashrc</pre>
  
 
5. Установите Python через pyenv:
 
5. Установите Python через pyenv:
<code>pyenv install 3.11.0</code>
+
<pre>pyenv install 3.11.0</pre>
<code>pyenv global 3.11.0</code>
+
<pre>pyenv global 3.11.0</pre>
  
== 3. Настройка pip ===
+
== 3. Настройка pip ==
  
 
=== Обновление pip ===
 
=== Обновление pip ===
  
 
1. Обновите pip до последней версии:
 
1. Обновите pip до последней версии:
<code>python -m pip install --upgrade pip</code>
+
<pre>python -m pip install --upgrade pip</pre>
  
 
2. Проверьте версию:
 
2. Проверьте версию:
<code>pip --version</code>
+
<pre>pip --version</pre>
  
 
=== Настройка pip конфигурации ===
 
=== Настройка pip конфигурации ===
  
 
1. Создайте директорию для конфигурации:
 
1. Создайте директорию для конфигурации:
<code>mkdir -p ~/.config/pip</code>
+
<pre>mkdir -p ~/.config/pip</pre>
  
 
2. Создайте файл конфигурации:
 
2. Создайте файл конфигурации:
<code>nano ~/.config/pip/pip.conf</code>
+
<pre>nano ~/.config/pip/pip.conf</pre>
  
 
3. Добавьте настройки:
 
3. Добавьте настройки:
<code>[global]
+
<pre>[global]
 
index-url = https://pypi.org/simple/
 
index-url = https://pypi.org/simple/
 
trusted-host = pypi.org
 
trusted-host = pypi.org
Строка 78: Строка 78:
 
[install]
 
[install]
 
user = true
 
user = true
</code>
+
</pre>
  
 
=== Настройка альтернативных репозиториев ===
 
=== Настройка альтернативных репозиториев ===
  
 
1. '''Использование альтернативного индекса''':
 
1. '''Использование альтернативного индекса''':
<code>pip install -i https://pypi.douban.com/simple/ package_name</code>
+
<pre>pip install -i https://pypi.douban.com/simple/ package_name</pre>
  
 
2. '''Настройка постоянного альтернативного репозитория''':
 
2. '''Настройка постоянного альтернативного репозитория''':
<code>pip config set global.index-url https://pypi.douban.com/simple/</code>
+
<pre>pip config set global.index-url https://pypi.douban.com/simple/</pre>
  
 
3. '''Восстановление стандартного репозитория''':
 
3. '''Восстановление стандартного репозитория''':
<code>pip config set global.index-url https://pypi.org/simple/</code>
+
<pre>pip config set global.index-url https://pypi.org/simple/</pre>
  
== 4. Виртуальные окружения ===
+
== 4. Виртуальные окружения ==
  
 
=== Создание виртуального окружения ===
 
=== Создание виртуального окружения ===
  
 
1. '''Создание окружения''':
 
1. '''Создание окружения''':
<code>python -m venv myenv</code>
+
<pre>python -m venv myenv</pre>
  
 
2. '''Активация окружения''':
 
2. '''Активация окружения''':
<code>source myenv/bin/activate</code>
+
<pre>source myenv/bin/activate</pre>
  
 
3. '''Деактивация окружения''':
 
3. '''Деактивация окружения''':
<code>deactivate</code>
+
<pre>deactivate</pre>
  
 
=== Использование virtualenv ===
 
=== Использование virtualenv ===
  
 
1. Установите virtualenv:
 
1. Установите virtualenv:
<code>pip install virtualenv</code>
+
<pre>pip install virtualenv</pre>
  
 
2. Создайте виртуальное окружение:
 
2. Создайте виртуальное окружение:
<code>virtualenv myenv</code>
+
<pre>virtualenv myenv</pre>
  
 
3. Активация окружения:
 
3. Активация окружения:
<code>source myenv/bin/activate</code>
+
<pre>source myenv/bin/activate</pre>
  
 
=== Использование conda ===
 
=== Использование conda ===
  
 
1. Скачайте и установите Miniconda:
 
1. Скачайте и установите Miniconda:
<code>wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh</code>
+
<pre>wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh</pre>
<code>bash Miniconda3-latest-Linux-x86_64.sh</code>
+
<pre>bash Miniconda3-latest-Linux-x86_64.sh</pre>
  
 
2. Создайте окружение:
 
2. Создайте окружение:
<code>conda create -n myenv python=3.11</code>
+
<pre>conda create -n myenv python=3.11</pre>
  
 
3. Активация окружения:
 
3. Активация окружения:
<code>conda activate myenv</code>
+
<pre>conda activate myenv</pre>
  
 
4. Деактивация окружения:
 
4. Деактивация окружения:
<code>conda deactivate</code>
+
<pre>conda deactivate</pre>
  
== 5. Управление пакетами ===
+
== 5. Управление пакетами ==
  
 
=== Установка пакетов ===
 
=== Установка пакетов ===
  
 
1. '''Установка пакета''':
 
1. '''Установка пакета''':
<code>pip install package_name</code>
+
<pre>pip install package_name</pre>
  
 
2. '''Установка конкретной версии''':
 
2. '''Установка конкретной версии''':
<code>pip install package_name==1.0.0</code>
+
<pre>pip install package_name==1.0.0</pre>
  
 
3. '''Установка из requirements.txt''':
 
3. '''Установка из requirements.txt''':
<code>pip install -r requirements.txt</code>
+
<pre>pip install -r requirements.txt</pre>
  
 
4. '''Установка в режиме разработки''':
 
4. '''Установка в режиме разработки''':
<code>pip install -e .</code>
+
<pre>pip install -e .</pre>
  
 
=== Создание requirements.txt ===
 
=== Создание requirements.txt ===
  
 
1. '''Сохранение зависимостей''':
 
1. '''Сохранение зависимостей''':
<code>pip freeze > requirements.txt</code>
+
<pre>pip freeze > requirements.txt</pre>
  
 
2. '''Сохранение только основных зависимостей''':
 
2. '''Сохранение только основных зависимостей''':
<code>pip freeze | grep -v "^-e" > requirements.txt</code>
+
<pre>pip freeze | grep -v "^-e" > requirements.txt</pre>
  
 
3. '''Установка из requirements.txt''':
 
3. '''Установка из requirements.txt''':
<code>pip install -r requirements.txt</code>
+
<pre>pip install -r requirements.txt</pre>
  
 
=== Управление зависимостями ===
 
=== Управление зависимостями ===
  
 
1. '''Просмотр установленных пакетов''':
 
1. '''Просмотр установленных пакетов''':
<code>pip list</code>
+
<pre>pip list</pre>
  
 
2. '''Просмотр информации о пакете''':
 
2. '''Просмотр информации о пакете''':
<code>pip show package_name</code>
+
<pre>pip show package_name</pre>
  
 
3. '''Поиск пакетов''':
 
3. '''Поиск пакетов''':
<code>pip search keyword</code>
+
<pre>pip search keyword</pre>
  
 
4. '''Обновление пакетов''':
 
4. '''Обновление пакетов''':
<code>pip install --upgrade package_name</code>
+
<pre>pip install --upgrade package_name</pre>
  
 
5. '''Удаление пакетов''':
 
5. '''Удаление пакетов''':
<code>pip uninstall package_name</code>
+
<pre>pip uninstall package_name</pre>
  
== 6. Создание Python приложения ===
+
== 6. Создание Python приложения ==
  
 
=== Простое веб-приложение с Flask ===
 
=== Простое веб-приложение с Flask ===
  
 
1. Установите Flask:
 
1. Установите Flask:
<code>pip install flask</code>
+
<pre>pip install flask</pre>
  
 
2. Создайте файл app.py:
 
2. Создайте файл app.py:
<code>nano app.py</code>
+
<pre>nano app.py</pre>
  
 
3. Добавьте код:
 
3. Добавьте код:
<code>from flask import Flask
+
<pre>from flask import Flask
  
 
app = Flask(__name__)
 
app = Flask(__name__)
Строка 199: Строка 199:
 
if __name__ == '__main__':
 
if __name__ == '__main__':
 
     app.run(host='0.0.0.0', port=5000, debug=True)
 
     app.run(host='0.0.0.0', port=5000, debug=True)
</code>
+
</pre>
  
 
4. Запустите приложение:
 
4. Запустите приложение:
<code>python app.py</code>
+
<pre>python app.py</pre>
  
 
=== API сервер с FastAPI ===
 
=== API сервер с FastAPI ===
  
 
1. Установите FastAPI:
 
1. Установите FastAPI:
<code>pip install fastapi uvicorn</code>
+
<pre>pip install fastapi uvicorn</pre>
  
 
2. Создайте файл main.py:
 
2. Создайте файл main.py:
<code>nano main.py</code>
+
<pre>nano main.py</pre>
  
 
3. Добавьте код:
 
3. Добавьте код:
<code>from fastapi import FastAPI
+
<pre>from fastapi import FastAPI
 
from pydantic import BaseModel
 
from pydantic import BaseModel
  
Строка 233: Строка 233:
 
def create_user(user: User):
 
def create_user(user: User):
 
     return {"id": 1, "name": user.name, "email": user.email}
 
     return {"id": 1, "name": user.name, "email": user.email}
</code>
+
</pre>
  
 
4. Запустите сервер:
 
4. Запустите сервер:
<code>uvicorn main:app --host 0.0.0.0 --port 8000</code>
+
<pre>uvicorn main:app --host 0.0.0.0 --port 8000</pre>
  
== 7. Настройка веб-сервера ===
+
== 7. Настройка веб-сервера ==
  
 
=== Настройка Nginx для Python ===
 
=== Настройка Nginx для Python ===
  
 
1. Установите Nginx:
 
1. Установите Nginx:
<code>sudo apt install -y nginx</code>
+
<pre>sudo apt install -y nginx</pre>
  
 
2. Создайте конфигурацию:
 
2. Создайте конфигурацию:
<code>sudo nano /etc/nginx/sites-available/python-app</code>
+
<pre>sudo nano /etc/nginx/sites-available/python-app</pre>
  
 
3. Добавьте конфигурацию:
 
3. Добавьте конфигурацию:
<code>server {
+
<pre>server {
 
     listen 80;
 
     listen 80;
 
     server_name your-domain.com;
 
     server_name your-domain.com;
Строка 261: Строка 261:
 
     }
 
     }
 
}
 
}
</code>
+
</pre>
  
 
4. Включите сайт:
 
4. Включите сайт:
<code>sudo ln -s /etc/nginx/sites-available/python-app /etc/nginx/sites-enabled/</code>
+
<pre>sudo ln -s /etc/nginx/sites-available/python-app /etc/nginx/sites-enabled/</pre>
  
 
5. Перезапустите Nginx:
 
5. Перезапустите Nginx:
<code>sudo systemctl restart nginx</code>
+
<pre>sudo systemctl restart nginx</pre>
  
 
=== Использование Gunicorn ===
 
=== Использование Gunicorn ===
  
 
1. Установите Gunicorn:
 
1. Установите Gunicorn:
<code>pip install gunicorn</code>
+
<pre>pip install gunicorn</pre>
  
 
2. Запустите приложение через Gunicorn:
 
2. Запустите приложение через Gunicorn:
<code>gunicorn -w 4 -b 0.0.0.0:5000 app:app</code>
+
<pre>gunicorn -w 4 -b 0.0.0.0:5000 app:app</pre>
  
 
3. Создайте systemd сервис:
 
3. Создайте systemd сервис:
<code>sudo nano /etc/systemd/system/python-app.service</code>
+
<pre>sudo nano /etc/systemd/system/python-app.service</pre>
  
 
4. Добавьте конфигурацию:
 
4. Добавьте конфигурацию:
<code>[Unit]
+
<pre>[Unit]
 
Description=Python Web Application
 
Description=Python Web Application
 
After=network.target
 
After=network.target
Строка 295: Строка 295:
 
[Install]
 
[Install]
 
WantedBy=multi-user.target
 
WantedBy=multi-user.target
</code>
+
</pre>
  
 
5. Запустите сервис:
 
5. Запустите сервис:
<code>sudo systemctl enable python-app</code>
+
<pre>sudo systemctl enable python-app</pre>
<code>sudo systemctl start python-app</code>
+
<pre>sudo systemctl start python-app</pre>
  
== 8. Управление зависимостями ===
+
== 8. Управление зависимостями ==
  
 
=== Использование Poetry ===
 
=== Использование Poetry ===
  
 
1. Установите Poetry:
 
1. Установите Poetry:
<code>curl -sSL https://install.python-poetry.org | python3 -</code>
+
<pre>curl -sSL https://install.python-poetry.org | python3 -</pre>
  
 
2. Добавьте Poetry в PATH:
 
2. Добавьте Poetry в PATH:
<code>echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc</code>
+
<pre>echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc</pre>
<code>source ~/.bashrc</code>
+
<pre>source ~/.bashrc</pre>
  
 
3. Инициализируйте проект:
 
3. Инициализируйте проект:
<code>poetry init</code>
+
<pre>poetry init</pre>
  
 
4. Добавьте зависимости:
 
4. Добавьте зависимости:
<code>poetry add flask</code>
+
<pre>poetry add flask</pre>
<code>poetry add --dev pytest</code>
+
<pre>poetry add --dev pytest</pre>
  
 
5. Установите зависимости:
 
5. Установите зависимости:
<code>poetry install</code>
+
<pre>poetry install</pre>
  
 
6. Запустите приложение:
 
6. Запустите приложение:
<code>poetry run python app.py</code>
+
<pre>poetry run python app.py</pre>
  
 
=== Использование pipenv ===
 
=== Использование pipenv ===
  
 
1. Установите pipenv:
 
1. Установите pipenv:
<code>pip install pipenv</code>
+
<pre>pip install pipenv</pre>
  
 
2. Инициализируйте проект:
 
2. Инициализируйте проект:
<code>pipenv install</code>
+
<pre>pipenv install</pre>
  
 
3. Добавьте зависимости:
 
3. Добавьте зависимости:
<code>pipenv install flask</code>
+
<pre>pipenv install flask</pre>
<code>pipenv install --dev pytest</code>
+
<pre>pipenv install --dev pytest</pre>
  
 
4. Активация окружения:
 
4. Активация окружения:
<code>pipenv shell</code>
+
<pre>pipenv shell</pre>
  
 
5. Запуск приложения:
 
5. Запуск приложения:
<code>pipenv run python app.py</code>
+
<pre>pipenv run python app.py</pre>
  
== 9. Тестирование ===
+
== 9. Тестирование ==
  
 
=== Настройка pytest ===
 
=== Настройка pytest ===
  
 
1. Установите pytest:
 
1. Установите pytest:
<code>pip install pytest</code>
+
<pre>pip install pytest</pre>
  
 
2. Создайте тестовый файл:
 
2. Создайте тестовый файл:
<code>nano test_app.py</code>
+
<pre>nano test_app.py</pre>
  
 
3. Добавьте тесты:
 
3. Добавьте тесты:
<code>import pytest
+
<pre>import pytest
 
from app import app
 
from app import app
  
Строка 372: Строка 372:
 
     assert response.status_code == 200
 
     assert response.status_code == 200
 
     assert 'users' in response.get_json()
 
     assert 'users' in response.get_json()
</code>
+
</pre>
  
 
4. Запустите тесты:
 
4. Запустите тесты:
<code>pytest</code>
+
<pre>pytest</pre>
  
 
=== Настройка coverage ===
 
=== Настройка coverage ===
  
 
1. Установите coverage:
 
1. Установите coverage:
<code>pip install coverage</code>
+
<pre>pip install coverage</pre>
  
 
2. Запустите тесты с покрытием:
 
2. Запустите тесты с покрытием:
<code>coverage run -m pytest</code>
+
<pre>coverage run -m pytest</pre>
  
 
3. Просмотр отчета:
 
3. Просмотр отчета:
<code>coverage report</code>
+
<pre>coverage report</pre>
<code>coverage html</code>
+
<pre>coverage html</pre>
  
== 10. Устранение неполадок ===
+
== 10. Устранение неполадок ==
  
 
=== Частые проблемы ===
 
=== Частые проблемы ===
  
 
1. '''Проблемы с путями''':
 
1. '''Проблемы с путями''':
* Проверьте PATH: <code>echo $PATH</code>
+
* Проверьте PATH: <pre>echo $PATH</pre>
 
* Обновите .bashrc
 
* Обновите .bashrc
 
* Перезапустите терминал
 
* Перезапустите терминал
Строка 404: Строка 404:
  
 
3. '''Проблемы с зависимостями''':
 
3. '''Проблемы с зависимостями''':
* Очистите кэш pip: <code>pip cache purge</code>
+
* Очистите кэш pip: <pre>pip cache purge</pre>
* Обновите pip: <code>python -m pip install --upgrade pip</code>
+
* Обновите pip: <pre>python -m pip install --upgrade pip</pre>
 
* Используйте виртуальные окружения
 
* Используйте виртуальные окружения
  
Строка 411: Строка 411:
  
 
1. '''Проверка версий''':
 
1. '''Проверка версий''':
<code>python --version</code>
+
<pre>python --version</pre>
<code>pip --version</code>
+
<pre>pip --version</pre>
  
 
2. '''Проверка путей''':
 
2. '''Проверка путей''':
<code>which python</code>
+
<pre>which python</pre>
<code>which pip</code>
+
<pre>which pip</pre>
  
 
3. '''Проверка установленных пакетов''':
 
3. '''Проверка установленных пакетов''':
<code>pip list</code>
+
<pre>pip list</pre>
  
 
4. '''Проверка конфигурации pip''':
 
4. '''Проверка конфигурации pip''':
<code>pip config list</code>
+
<pre>pip config list</pre>
  
 
== Заключение ==
 
== Заключение ==

Текущая версия на 10:34, 15 октября 2025

Содержание

Настройка 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):

Наши специалисты помогут с настройкой Python и оптимизацией производительности ваших приложений!