Python без инсталляции: варианты для разработки и обучения
Python без установки: как начать писать код без инсталляции
Как получить полноценную среду Python в браузере с помощью Google Colab?
Google Colab предоставляет виртуальную машину с предустановленным Python, Jupyter Notebook и доступом к GPU. Для начала работы требуется только аккаунт Google. После открытия colab.research.google.com создаётся новый блокнот, где можно выполнять код Python.
# Пример кода в Colab
print('Привет, мир!')
import numpy as np
arr = np.array([1, 2, 3])
print(arr.mean())Python без установки (python без установки)
Привет, мир! 2.0
Python ошибка установки (ошибка установки python)
Для установки библиотек используется !pip install:
!pip install requests pandasустановка python (установка python)
Проблема: Сохранение данных после отключения от сессии. Решение: файлы сохраняются в Google Drive при монтировании диска (from google.colab import drive; drive.mount('/content/drive')). Также можно скачать блокнот в формате .ipynb.
Как использовать онлайн‑IDE Replit для быстрого прототипирования?
Replit – облачная среда разработки, поддерживающая множество языков, включая Python. Не требует регистрации для простых скриптов. После входа можно создать repl (проект) и сразу писать код.
# запуск простого HTTP‑сервера
from http.server import HTTPServer, BaseHTTPRequestHandler
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello from Replit!')
HTTPServer(('', 8080), Handler).serve_forever()установка пакетов python (установка пакетов python)
Проблема: Ограничения по времени работы и ресурсам. Для долговременных проектов лучше использовать платный тариф или другие решения.
Как запустить изолированное Python‑окружение через Docker?
Docker позволяет запускать Python в контейнере без установки интерпретатора на хост‑систему. Достаточно иметь Docker Desktop. Создание простого контейнера:
# Команда для запуска интерактивной сессии
docker run -it --rm python:3.12 bashroot@abc123:/# python --version Python 3.12.0
Для выполнения скрипта файл монтируется в контейнер:
# Выполнение локального скрипта
docker run --rm -v "$PWD/script.py:/script.py" python:3.12 python /script.pyПроблема: Большой размер образа (около 900 МБ), требуется установка Docker. Альтернатива: использование python:3.12-slim (около 120 МБ).
Как использовать портативную версию Python на Windows (WinPython)?
WinPython – портативная сборка Python с менеджером пакетов и Spyder. Не требует установки, работает с USB‑накопителя. После скачивания и распаковки можно запустить python.exe или Spyder.exe.
# Проверка версии
WinPython\python-3.11.5\python.exe --versionPython 3.11.5
Проблема: Отсутствие автоматического добавления в PATH. Решение: запускать скрипты, указывая полный путь к интерпретатору, или вручную прописать в переменные среды.
Как выполнять Python в браузере с помощью Pyodide (WebAssembly)?
Pyodide – интерпретатор CPython, скомпилированный в WebAssembly. Позволяет запускать Python прямо в HTML‑странице без бэкенда. Пример:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/pyodide/v0.25.0/full/pyodide.js"></script>
</head>
<body>
<script>
async function main() {
let pyodide = await loadPyodide();
let result = await pyodide.runPythonAsync('import math; math.sqrt(16)');
console.log(result); // 4
}
main();
</script>
</body>
</html>Проблема: Ограниченный доступ к файловой системе и сетевым запросам (из‑за политики CORS). Для серьёзных проектов лучше использовать серверный Python.
Расширенные примеры использования Python без установки
Развёртывание веб‑приложения Flask в Replit с использованием базы данных SQLite
Replit позволяет создавать полноценные веб‑сервисы. Пример приложения с маршрутами и сохранением данных.
# main.py
from flask import Flask, request, jsonify
import sqlite3
app = Flask(__name__)
def init_db():
conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY, text TEXT)')
conn.commit()
conn.close()
init_db()
@app.route('/')
def home():
return 'Flask работает в Replit!'
@app.route('/add', methods=['POST'])
def add_message():
text = request.json.get('text', '')
conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('INSERT INTO messages (text) VALUES (?)', (text,))
conn.commit()
conn.close()
return jsonify({'status': 'ok'})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)После запуска в Replit приложение доступно по URL вида https://project-name.username.repl.co. Ответ на GET /: "Flask работает в Replit!"
Сборка кастомного образа Docker с Python и установкой зависимостей из requirements.txt
Dockerfile для создания минимального окружения с дополнительными библиотеками.
# Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]После выполнения команд: docker build -t my-python-app . docker run my-python-app
# requirements.txt (пример)
flask==3.0.0
numpy==1.26.2
requests==2.31.0Создание статического сайта с Python‑виджетом через Pyodide и построение графика
Использование Pyodide вместе с библиотекой matplotlib (например, через micropip).
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/pyodide/v0.25.0/full/pyodide.js"></script>
</head>
<body>
<div id="plot"></div>
<script>
async function main() {
let pyodide = await loadPyodide();
await pyodide.loadPackage(['matplotlib', 'numpy']);
let code = `
import matplotlib.pyplot as plt
import numpy as np
import io, base64
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))
plt.title('Синусоида')
buf = io.BytesIO()
plt.savefig(buf, format='png')
buf.seek(0)
img = base64.b64encode(buf.read()).decode()
img
`;
let img_base64 = await pyodide.runPythonAsync(code);
document.getElementById('plot').innerHTML = `<img src="data:image/png;base64,${img_base64}" />`;
}
main();
</script>
</body>
</html>В браузере отобразится PNG‑изображение графика синусоиды.
Использование JupyterLite для локального запуска ноутбуков без сервера
JupyterLite – дистрибутив JupyterLab, работающий полностью в браузере на основе Pyodide. Все данные хранятся в веб‑хранилище, установка не требуется.
# Запуск JupyterLite на локальной машине (через Python, если уже установлен):
# pip install jupyterlite-core
# jupyter lite init
# jupyter lite build
# jupyter lite serve
# Затем открыть http://localhost:8000 в браузере.При открытии в браузере появляется интерфейс JupyterLab, где можно создавать ноутбуки с ядром Python (Emscripten). Пример ячейки:
import sys
print(sys.version)3.12.0 (main, Nov 21 2023, 20:00:00) [Clang 16.0.6]
Настройка виртуального окружения с помощью pipenv в Docker (без установки на хост)
Создание изолированного окружения внутри контейнера, чтобы не засорять глобальный Python.
# Dockerfile с pipenv
FROM python:3.12-slim
RUN pip install pipenv
WORKDIR /app
COPY Pipfile Pipfile.lock ./
RUN pipenv install --deploy --ignore-pipfile
COPY . .
CMD ["pipenv", "run", "python", "app.py"]Контейнер содержит только те пакеты, которые указаны в Pipfile. Команда pipenv run активирует виртуальное окружение автоматически.Запуск асинхронного Python‑скрипта в Google Colab с сохранением логов в Google Drive
Colab поддерживает асинхронные операции через asyncio.
import asyncio
import aiohttp
from google.colab import drive
drive.mount('/content/drive')
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
return await resp.text()
async def main():
urls = ['https://httpbin.org/get', 'https://example.com']
tasks = [fetch(url) for url in urls]
results = await asyncio.gather(*tasks)
with open('/content/drive/MyDrive/logs.txt', 'w') as f:
f.write('\n'.join(results[:100]))
await main()После выполнения файл logs.txt появляется в Google Drive.